2011-01-11 14 views

risposta

18

Sono sicuro che si potrebbe usare myList.Exists anche in VB.NET, con la sua sintassi di espressione lambda.

Tuttavia, il modo più generale è utilizzare l'operatore LINQ Any, con il sovraccarico che richiede un predicato. Per esempio:

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

Personalmente preferisco utilizzare gli operatori LINQ a meno che il metodo più specifico List<T> fornisce un vantaggio significativo per qualche motivo.

EDIT:

Se è necessario accedere all'oggetto in seguito, basta usare:

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

Grazie. Se c'è una corrispondenza, come posso accedere all'elemento abbinato? Devo usare singleOrDefault? – Prabhu

+0

@Prabhu: Oppure 'FirstOrDefault'. Ti suggerisco di usarlo per cominciare - non ha senso trovarlo, e poi guardare di nuovo. –

+0

Grazie! In realtà ho bisogno di accedere all'elemento e anche modificare una proprietà. Se modifico foo, come faccio ad aggiornare l'elenco con il foo aggiornato? – Prabhu

6

E 'più o meno lo stesso, tranne VB.NET ha una sintassi diversa per le espressioni lambda:

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