2011-01-11 16 views

Respuesta

18

Estoy seguro de que podría utilizar myList.Exists en VB.NET también, solo con su sintaxis de expresión lambda.

Sin embargo, la forma más general es usar el operador LINQ Any, con la sobrecarga que toma un predicado. Por ejemplo:

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

personalmente prefiero utilizar los operadores de LINQ a menos que el List<T> método más específico proporciona una ventaja significativa por alguna razón.

EDIT:

Si necesita acceder al objeto después, sólo tiene que utilizar:

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

Gracias. Si hay una coincidencia, ¿cómo puedo acceder al elemento coincidente? ¿Utilizo singleOrDefault? – Prabhu

+0

@Prabhu: O 'FirstOrDefault'. Le sugiero que lo use para empezar, no tiene sentido encontrarlo y luego volver a mirar. –

+0

¡Gracias! De hecho, necesito acceder al elemento y también editar una propiedad. Si edito foo, ¿cómo puedo actualizar la lista con el foo actualizado? – Prabhu

6

Es más o menos lo mismo, excepto VB.NET tiene una sintaxis diferente para las expresiones lambda:

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