如何访问实现IEnumerable的对象中的第一个元素

时间:2010-12-16 01:10:23

标签: c# .net

只想访问实现IEnumerable的对象中的第一个元素,该怎么做?

2 个答案:

答案 0 :(得分:7)

不幸的是,您无法在仅实现IEnumerable的内容上使用LINQ扩展方法。但是,您可以使用.Cast<object>()将其转换为IEnumerable<object>,然后使用以下方法。以下假设某些collection IEnumerable<T>的{​​{1}}类型为T

要访问第一个元素,如果没有则抛出异常:

collection.First()

要访问第一个元素并获取类型的默认值(如果没有):

collection.FirstOrDefault()

对于引用类型(声明为null的类型,例如classstringStream等),类型的默认值为Bitmap。值类型的“零值”(声明为structenum的类型,例如intboolDateTime等。

仅查明是否存在第一个元素:

collection.Any()

所有这三个都可以将lambda表达式作为条件,例如.First(x => x.Name == "x"),相当于.Where(x => x.Name == "x").First()

答案 1 :(得分:4)

使用FirstOrDefault方法

using System.Linq;

int[] numbers = { };
int first = numbers.FirstOrDefault();