使用LINQ在列表中查找特定类型的第一个元素

时间:2009-08-24 14:00:26

标签: c# linq

使用LINQ和C#在元素列表中找到特定类型的第一个项目的最短符号是什么。

4 个答案:

答案 0 :(得分:29)

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

请注意,如果没有YourType类型的元素,First方法将抛出异常。如果您不希望这样,那么您可以改用FirstOrDefaultTake(1),具体取决于您想要的行为。

答案 1 :(得分:12)

使用OfType扩展方法:

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

答案 2 :(得分:7)

您想要Enumerable.OfType

list.OfType<MyType>().First();

答案 3 :(得分:5)

您可以使用FirstOrDefault并传入委托来进行比较。

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

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