如何获取IEnumerable(非泛型)的第一个元素?

Abh*_*gre 4 c#

如果我有一个通用的IEnumerable<int>.我可以简单地申请ToList()或者ToArray()或者申请FirstOrDefault().如何将这些方法应用于非泛型IEnumerable

And*_*rei 8

你有几个选择:

  1. 如果您知道可枚举中的所有对象属于同一类型,则可以将其强制转换为泛型IEnumerable<YourType>.在最坏的情况下,您可以随时使用object:

    object first = enumerable.Cast<object>().First();
    
    Run Code Online (Sandbox Code Playgroud)
  2. 或者您可以使用枚举器,执行一步并获取当前元素:

    IEnumerator enumerator = enumerable.GetEnumerator();
    enumerator.MoveNext();
    object first = enumerator.Current;
    
    Run Code Online (Sandbox Code Playgroud)