Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
存在VB.Net Linq数据表_Vb.net_Linq_Datatable - Fatal编程技术网

存在VB.Net 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

我想使用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
    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