不幸的是,你不能在仅实现的东西上使用LINQ扩展方法IEnumerable.但是,您可以使用.Cast<object>()它将其转换为a IEnumerable<object>然后使用以下方法.以下假定某些collection类型IEnumerable<T>是T:
要访问第一个元素,如果没有则抛出异常:
collection.First()
Run Code Online (Sandbox Code Playgroud)
要访问第一个元素并获取类型的默认值(如果没有):
collection.FirstOrDefault()
Run Code Online (Sandbox Code Playgroud)
类型的默认值是null对于引用类型(声明为类型class,例如string,Stream,Bitmap等)和"零值"为值类型(类型声明为struct或enum,例如int,bool,DateTime等等).
只知道是否存在第一个元素:
collection.Any()
Run Code Online (Sandbox Code Playgroud)
所有这三个都可以将lambda表达式作为条件,例如.First(x => x.Name == "x"),相当于.Where(x => x.Name == "x").First().
| 归档时间: |
|
| 查看次数: |
1426 次 |
| 最近记录: |