我需要能够快速删除datagridview中的重复条目。不幸的是,我这样做的方式可能需要几分钟,任何超过100K的物品。
以下是我正在使用的代码:
Dim wordlist As New List(Of String)
Dim numCols As Integer = DataGridView1.ColumnCount
Dim numRows As Integer = DataGridView1.RowCount - 1
Dim wordlist2 As New List(Of String)
For count As Integer = 0 To numRows - 1
wordlist.Add(DataGridView1.Rows(count).Cells("url").Value)
Next
For Each word As String In wordlist
If Not wordlist2.Contains(word) Then
wordlist2.Add(word)
End If
Next
fullitem.Clear()
For Each word2 As String In wordlist2
fullitem.Add(New item(word2, "", ""))
Next
DataGridView1.RowCount = fullitem.Count + 1
MessageBox.Show("Done!")
datagridview处于虚拟模式以支持大量数据。
如果有人能帮我找出快速删除欺骗的方法,我会非常感激。
答案 0 :(得分:0)
而不是先将它添加到wordList然后循环并检查何时将其添加到第二个列表,只需检查何时将其添加到第一个列表。 此外,我们立即将它添加到fullitem(不知道那是什么,你不显示它是什么)。我们只使用包含的列表。
这样,我们将三个循环减少为一个。
Dim wordlist As New List(Of String)
Dim numCols As Integer = DataGridView1.ColumnCount
Dim numRows As Integer = DataGridView1.RowCount - 1
Dim word As String
fullitem.Clear()
For count As Integer = 0 To numRows - 1
word = DataGridView1.Rows(count).Cells("url").Value
If Not wordlist.Contains(word) Then
wordlist.Add(word)
fullitem.Add(New item(word, "", ""))
End If
Next
DataGridView1.RowCount = fullitem.Count + 1
MessageBox.Show("Done!")