Как использовать. Где в общем списке

У меня есть List (Of MyType), и я хотел бы использовать LINQ для получения подмножества списка.

В MyType есть поле под названием AccountNumber. Могу ли я использовать LINQ, чтобы сказать следующее?

Dim t As List(Of MyType)
t = GetMyTypes()
t = t.Where(AccountNumber = "123")

Спасибо

Ответы

Ответ 1

Ты почти там. Аргумент Where должен быть функцией, поэтому ваш код должен выглядеть следующим образом:

Dim t As List(Of MyType)
t = GetMyTypes()
Dim result = t.Where(Function(x) x.AccountNumber = "123")

В качестве альтернативы вы можете использовать подробный синтаксис LINQ:

Dim result = From t In GetMyTypes() Where t.AccountNumber = "123"

Возвращаемый тип данных не является List(Of MyType), а IEnumerable(Of MyType), поэтому вы не можете напрямую назначить его переменной, объявленной как List(Of MyType). Если вы хотите создать список, вы можете "преобразовать" его, используя result.ToList(). Это также приведет к немедленной оценке списка .