Удаление повторов в DataTable - Visual Basic .NET
Формулировка задачи:
Здравствуйте!
Имею таблицу в 2 столбца. Хочу удалить строки, в которых имеются одинаковые значения в первом столбце (у меня он называется Names).
Накидал вот такую функцию, она работает, но медленно. Наверняка есть способ быстрее и красивее. Подскажите, пожалуйста.
Решение задачи: «Удаление повторов в DataTable»
textual
Листинг программы
Private Sub Button5_Click(sender As System.Object, e As System.EventArgs) Handles Button5.Click Dim tb As DataTable = CreateTabl() DataGridView1.DataSource = CropeArr(tb) End Sub Private Function CropeArr(ByVal Arr As System.Data.DataTable) As System.Data.DataTable 'в таблице Arr два поля Фамилия и Дата Dim tbb = Arr.AsEnumerable().Distinct(New rComp) Dim tb As New DataTable tb.Columns.Add("Фамилия", System.Type.GetType("System.String")) tb.Columns.Add("Дата", System.Type.GetType("System.DateTime")) For Each r As DataRow In tbb tb.Rows.Add(r.ItemArray) Next Return tb End Function Private Class rComp : Implements IEqualityComparer(Of DataRow) Public Overloads Function Equals(ByVal b1 As DataRow, ByVal b2 As DataRow) _ As Boolean Implements IEqualityComparer(Of DataRow).Equals Dim bb As Boolean If String.Compare(b1.Item(0), b2.Item(0)) = 0 Then bb = True Return bb End Function Public Overloads Function GetHashCode(ByVal bx As DataRow) _ As Integer Implements IEqualityComparer(Of DataRow).GetHashCode Dim hCode As Integer = bx(0).GetHashCode Return hCode.GetHashCode() End Function End Class
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д