VB.Net Linq Datatable существует - PullRequest
0 голосов
/ 05 мая 2010

Я бы хотел использовать 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 in выше. Производительность может быть проблемой,

Ответы [ 2 ]

1 голос
/ 05 мая 2010

Я нашел решение, которое, кажется, работает:

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
0 голосов
/ 05 мая 2010

А как насчет DataTable.Select Method (String) (извините, мой VB плох

    Dim expression As String
    expression = string.Format("CollectionId = '{0}'", collectionId)
    ' Use the Select method to find all rows matching the filter.
    return apps.Select(expression).Count > 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...