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

bit*_*onk 18 c# linq

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

Luk*_*keH 31

var first = yourCollection.OfType<YourType>().First();
Run Code Online (Sandbox Code Playgroud)

请注意,First如果没有类型的元素,该方法将抛出异常YourType.如果您不想那样,那么您可以使用FirstOrDefaultTake(1)替代,这取决于您想要的行为.


Aks*_*son 12

使用OfType扩展方法:

public static T FindFirstOfType<T>(IEnumerable list){
 return list.OfType<T>().FirstOrDefault();
}
Run Code Online (Sandbox Code Playgroud)

  • 这个IEnumerable列表使它成为一个扩展名? (2认同)

Hug*_*are 5

您可以使用FirstOrDefault和传递委托来用于比较.

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

string first = list.FirstOrDefault(o => o is string); //something
Run Code Online (Sandbox Code Playgroud)