List.Contains на основе свойства элемента списка - PullRequest
9 голосов
/ 11 января 2011

У меня есть список myList из MyObjects.Можно ли проверить, содержит ли myList конкретный myObject на основе свойства myObject в VB.NET?В C # вам нужно что-то похожее на это право:

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

Ответы [ 2 ]

21 голосов
/ 11 января 2011

Я уверен, что вы также можете использовать myList.Exists в VB.NET, только с синтаксисом лямбда-выражений.

Однако, более общий способ - использовать Any* 1006.* Оператор 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
7 голосов
/ 11 января 2011

Это примерно то же самое, за исключением того, что VB.NET имеет другой синтаксис для лямбда-выражений:

myList.Exists(Function(myObject) myObject.property1 = 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...