¿Hay un método de búsqueda linq lambda que devuelve nulo, en lugar de arrojar una excepción, al buscar en una lista?Buscar() y Primero() arroja excepciones, ¿cómo devolver nulo en su lugar?
Mi solución actual es algo así como: (para evitar la excepción de ser lanzado)
if (list.Exists(x => x.Foo == Foo))
{
var listItem = list.Find(x => x.Foo == Foo);
}
Se siente mal repetir la expresión.
Algo así como ...
var listItem = list.Find(x => x.Foo == Foo);
if (listItem != null)
{
//Do stuff
}
... se siente mejor para mí. O solo soy yo?
¿Tiene un mejor enfoque en este caso? (La solución no tiene que estar volviendo nula, simplemente una mejor solución es buena)
y no se olvide - si su lista contendrá el valor por defecto para ese tipo genérico ([Valores predeterminados Tabla] (http://msdn.microsoft. com/en-us/library/83fhsxwc.aspx)), no puede decir si el valor existe o no usando el método 'Find'. Deberías usar 'FindIndex',' Existe' o 'Contiene' en esas situaciones. – HuBeZa