2011-01-11 20 views

Odpowiedz

18

Jestem pewien, że można użyć myList.Exists również w VB.NET, tylko ze składnią wyrażeń lambda.

Jednak bardziej ogólnym sposobem jest użycie operatora LINQ Any, z przeciążeniem, które pobiera predykat. Na przykład:

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

Osobiście wolę używać operatory LINQ chyba bardziej specyficzny sposób List<T> zapewnia znaczną przewagę jakiegoś powodu.

EDIT:

Jeśli chcesz uzyskać dostęp do obiektu potem, wystarczy użyć:

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

Dzięki. Jeśli istnieje dopasowanie, w jaki sposób mogę uzyskać dostęp do dopasowanego elementu? Czy korzystam z singleOrDefault? – Prabhu

+0

@Prabhu: Lub 'FirstOrDefault'. Sugeruję, żebyś użył tego na początku - nie ma sensu go znaleźć, a potem znowu się zaglądasz. –

+0

Dzięki! Właściwie muszę uzyskać dostęp do elementu, a także edytować właściwość. Jeśli edytuję foo, jak mogę zaktualizować listę zaktualizowanym foo? – Prabhu

6

To jest mniej więcej to samo, z wyjątkiem VB.NET ma inną składnię wyrażeń lambda:

myList.Exists(Function(myObject) myObject.property1 = 3) 
Powiązane problemy