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

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

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


谢谢

最佳答案

您快到了。 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

关于vb.net - 通用列表中的使用方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4197899/

10-13 05:56