我有一个myList
的列表MyObjects
。是否可以根据VB.NET中myList
的属性检查myObject
是否包含特定myObject
?在C#中,你有类似的东西:
myList.Exists(myObject => myObject.property1 == 3)
答案 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)