Какова будет кратчайшая нотация, чтобы найти первый элемент определенного типа в списке элементов, использующих LINQ и С#.
Найти первый элемент определенного типа в списке, используя LINQ
Ответ 1
var first = yourCollection.OfType<YourType>().First();
Обратите внимание, что метод First
выдаст исключение, если нет элементов типа YourType
. Если вы этого не хотите, вы можете использовать FirstOrDefault
или Take(1)
, в зависимости от вашего поведения.
Ответ 2
Используйте метод расширения OfType:
public static T FindFirstOfType<T>(IEnumerable list){
return list.OfType<T>().FirstOrDefault();
}
Ответ 3
Вы хотите Enumerable.OfType
:
list.OfType<MyType>().First();
Ответ 4
Вы можете просто использовать FirstOrDefault
и передать делегат для использования для сравнения.
object[] list = new object[] {
4,
"something",
3,
false,
"other"
};
string first = list.FirstOrDefault(o => o is string); //something