存在VB.Net Linq数据表
我想使用Linq而不是下面的函数:存在VB.Net Linq数据表,vb.net,linq,datatable,Vb.net,Linq,Datatable,我想使用Linq而不是下面的函数: Friend Function IsCollectionInTable2(ByVal apps As DataTable, ByVal collectionId As String) As Boolean For Each row As DataRow In apps.Rows If row("CollectionId").ToString = collectionId Then Return True Next Ret
Friend Function IsCollectionInTable2(ByVal apps As DataTable, ByVal collectionId As String) As Boolean
For Each row As DataRow In apps.Rows
If row("CollectionId").ToString = collectionId Then Return True
Next
Return False
End Function
我能做的最好的事情如下:
Friend Function IsCollectionInTable(ByVal apps As DataTable, ByVal collectionId As String) As Boolean
Return (From row In apps.AsEnumerable()
Where (row.Field(Of String)("CollectionId") = collectionId)
Select row.Field(Of String)("CollectionId")).Count > 0
End Function
我想在上述函数中使用Exists或Any。性能可能是个问题,怎么办(对不起,我的VB很差)
我找到了一个似乎有效的解决方案:
Return (From row In apps.AsEnumerable()
Where row.Field(Of String)("CollectionId") = collectionId).Any()
我希望这与以下速度一样快:
For Each row As DataRow In apps.Rows
If row("CollectionId").ToString = collectionId Then Return True
Next
Return False
比我的示例更好,但它仍然必须读取所有行。我想使用Exists或Any,以便它能尽快返回。
For Each row As DataRow In apps.Rows
If row("CollectionId").ToString = collectionId Then Return True
Next
Return False