如何使用.在通用列表中

Tig*_*ran 17 linq vb.net

我有一个List(Of MyType),我想使用LINQ来获取列表的子集.

在MyType上有一个名为AccountNumber的字段.我可以使用LINQ这样说吗?

Dim t As List(Of MyType)
t = GetMyTypes()
t = t.Where(AccountNumber = "123")
Run Code Online (Sandbox Code Playgroud)

谢谢

Hei*_*nzi 34

你快到了.Where需要成为函数的参数,因此您的代码应如下所示:

Dim t As List(Of MyType)
t = GetMyTypes()
Dim result = t.Where(Function(x) x.AccountNumber = "123")
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用详细的LINQ语法:

Dim result = From t In GetMyTypes() Where t.AccountNumber = "123"
Run Code Online (Sandbox Code Playgroud)

返回的数据类型不是a,List(Of MyType)而是a IEnumerable(Of MyType),因此不能直接将其分配给声明为的变量List(Of MyType).如果要创建列表,可以使用"转换"它result.ToList().这也会导致立即评估列表.

  • @Feign:这实际上取决于你想要实现的目标:如果你想要**账号为`123`的第一个**条目,使用`First`(在这种情况下添加`Order By`子句可能会有用,尽管).如果您想要**帐号为"123"的所有**条目的列表,请使用"ToList". (2认同)