1
目前我們有一個大型的DataTable(~152k行),並對每個數據表進行一次查找,以找到不同條目的子集(〜124K行)。目前這需要14分鐘左右的時間,這太長了。在大型數據表中查找不同的行
由於我們被困在.NET 2.0中,因爲我們的報告不會與VS 2008+一起使用,所以我不能使用linq,儘管我不知道這是否會更快公平。
有沒有更好的方法找到每個循環以外的不同行(此例中爲發票號)?
這是代碼:
Public Shared Function SelectDistinctList(ByVal SourceTable As DataTable, _
ByVal FieldName As String) As List(Of String)
Dim list As New List(Of String)
For Each row As DataRow In SourceTable.Rows
Dim value As String = CStr(row(FieldName))
If Not list.Contains(value) Then
list.Add(value)
End If
Next
Return list
End Function
這似乎已經得到它下降到低於1秒,貌似這是1巨大的瓶頸! – themaninthesuitcase 2010-10-06 10:49:12