#vb.net #linq
#vb.net #linq
Вопрос:
У меня есть список списков (StoreList). Мне нужно количество всех доступных яблок во всех магазинах. Не уверен, как это сделать.
Class myObject
Public What As String
Public Available As Boolean
End Class
Public Sub Test()
Dim ItemList As New List(Of myObject)
ItemList.Add(New myObject With {.What = "Apple", .Available = True})
ItemList.Add(New myObject With {.What = "Cherry", .Available = False})
Dim StoreList As New List(Of List(Of myObject))
StoreList.Add(ItemList)
'StoreList.Add(...)
'error here
Dim count As Integer = StoreList.Sum( _
ItemList.Where(Function(x As myObject) _
x.What = "Apple" And x.Available).Count)
End Sub
Очевидно, что я не могу суммировать количество так, как я это делаю. Как бы я использовал Linq, чтобы получить количество всех доступных яблок во всех магазинах?
Ответ №1:
Вы забыли назначить функцию в Sum
try this:
Dim count As Integer = StoreList.Sum( Function(inner) _
inner.Where(Function(x As myObject) _
x.What = "Apple" And x.Available).Count)