List.Contains基于列表项的属性

Pra*_*bhu 9 .net vb.net list filter

我有一个列表myListMyObjects.是否可以检查是否myList包含myObject基于myObjectVB.NET 属性的特定内容?在C#中,你有类似的东西:

myList.Exists(myObject => myObject.property1 == 3)
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 21

我相信你也可以myList.Exists在VB.NET中使用它,只需使用它的lambda表达式语法.

但是,更通用的方法是使用AnyLINQ运算符,其中带有谓词的重载.例如:

myList.Any(Function(myObject) myObject.property1 = 3)
Run Code Online (Sandbox Code Playgroud)

我个人更喜欢使用LINQ运算符,除非更具体的List<T>方法由于某种原因提供了显着的优势.

编辑:

如果您之后需要访问该对象,只需使用:

Dim foo = myList.FirstOrDefault(Function(myObject) myObject.property1 = 3)
If (foo Is Not Nothing) Then
    ...
End If
Run Code Online (Sandbox Code Playgroud)


Tho*_*que 7

它大致相同,除了VB.NET对lambda表达式有不同的语法:

myList.Exists(Function(myObject) myObject.property1 = 3)
Run Code Online (Sandbox Code Playgroud)