如何获得IEnumerable的第一个元素

Fit*_*aki 17 .net c# ienumerable linq-to-objects html-lists

是否有更好的方法来获取IEnumerable类型的第一个元素:

foreach (Image image in imgList)
{
     picture.Width = (short)image.Columns;
     picture.Height = (short)image.Rows;
     break;
}
Run Code Online (Sandbox Code Playgroud)

这是类型的确切声明:

public class ImageList : IEnumerable, IDisposable
Run Code Online (Sandbox Code Playgroud)

Mar*_*ann 31

var firstImage = imgList.Cast<Image>().First();
Run Code Online (Sandbox Code Playgroud)

  • @Ramesh:在这种情况下需要`Cast`,因为`First`是为`IEnumerable <T>`实现的,但``ImageList`只实现`IEnumerable`. (4认同)

Jon*_*onC 10

如果您不能使用LINQ,您也可以直接获取枚举器imgList.GetEnumerator() 然后执行a .MoveNext()移动到第一个元素. .Current然后会给你第一个元素.


Jar*_*yer 5

扩展程序.First()将获取可枚举中的第一项.如果集合为空,则会抛出异常..FirstOrDefault()将返回空集合的默认值(对于引用类型为null).明智地选择你的武器!