我正在尝试为DataTable查找与Excel CountA函数等效的函数。
'This code works for searching through a range of columns in Excel
If xlApp.WorksheetFunction.CountA(WS.Range("A" & i & ":G" & i)) > 0 Then
DataExists = True
End If
'This is the code I need help with for searching though a DataTable
If DataTbl.Rows(i).Item(0:6).ToString <> "" Then
DataExists = True
End If
希望有人能帮忙。
1条答案
按热度按时间wqnecbli1#
我认为您只需要一个for-each循环。
用法:
这在LINQ中也是可行的,但我认为它会更慢--我将在以后运行一些基准测试并更新我的答案。
编辑
我添加了这两个LINQ方法:
以下是使用BenchmarkDotNet获得的统计数据:
我使用了一个伪随机生成的约550万行和3列的数据表作为测试,我认为这些结果可能会随着数据表的增大而改变,但对于较小的数据表(约500k行或更少),最快的方法可能是简单的for-each循环。
最快的方法:
1.对于每个回路
1.线性并联
1.链接列表〉用于每个
我当然不是LINQ大师,但我想成为,所以如果有人有更好的LINQ实现,请让我知道。顺便说一句,我不认为这可能是典型的LINQ用例。