我有一个List(Of MyType),我想使用LINQ来获取列表的子集。
在MyType上有一个名为AccountNumber的字段。我可以使用LINQ来说这样的东西吗?
Dim t As List(Of MyType)
t = GetMyTypes()
t = t.Where(AccountNumber = "123")
由于
答案 0 :(得分:34)
你快到了。 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()
“转换”它。这也会导致list to be evaluated immediately。