2009-08-24 13 views

Respuesta

25
var first = yourCollection.OfType<YourType>().First(); 

Tenga en cuenta que el método First será una excepción si no hay elementos de tipo YourType. Si no lo desea, puede usar FirstOrDefault o Take(1), según el comportamiento que desee.

12

utilizar el método de extensión OfType:

public static T FindFirstOfType<T>(IEnumerable list){ 
return list.OfType<T>().FirstOrDefault(); 
} 
+2

esta lista de IEnumerable para convertirla en una extensión? –

5

Se podía usar el FirstOrDefault y pase el delegado a utilizar para la comparación.

object[] list = new object[] { 
    4, 
    "something", 
    3, 
    false, 
    "other" 
}; 

string first = list.FirstOrDefault(o => o is string); //something 
+0

Tu código no se compila. Debido a que 'FirstOrDefault' está devolviendo un' object' y tienes que convertirlo a 'string' para que se asigne a la primera variable declarada como' string'. –

Cuestiones relacionadas