2009-08-24 15 views

risposta

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

Nota che il metodo First sarà un'eccezione se non ci sono elementi di tipo YourType. Se non lo desideri, puoi utilizzare FirstOrDefault o Take(1) invece, a seconda del comportamento che desideri.

12

utilizzare il metodo di estensione OfType:

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

questo elenco IEnumerable per renderlo un'estensione? –

5

Si potrebbe utilizzare il FirstOrDefault e passare il delegato da utilizzare per il confronto.

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

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

Il tuo codice non viene compilato. Perché 'FirstOrDefault' restituisce un' oggetto' e devi lanciarlo su 'string' perché venga assegnato alla prima variabile dichiarata come' stringa'. –

Problemi correlati