List.Contains基于列表项的属性

时间:2011-01-11 20:51:14

标签: .net vb.net list filter

我有一个myList的列表MyObjects。是否可以根据VB.NET中myList的属性检查myObject是否包含特定myObject?在C#中,你有类似的东西:

myList.Exists(myObject => myObject.property1 == 3)

2 个答案:

答案 0 :(得分:21)

我确信您也可以在VB.NET中使用myList.Exists,只需使用其lambda表达式语法。

但是,更通用的方法是使用Any LINQ运算符,以及带谓词的重载。例如:

myList.Any(Function(myObject) myObject.property1 = 3)

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

编辑:

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

Dim foo = myList.FirstOrDefault(Function(myObject) myObject.property1 = 3)
If (foo Is Not Nothing) Then
    ...
End If

答案 1 :(得分:7)

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

myList.Exists(Function(myObject) myObject.property1 = 3)