C# 如何在不迭代的情况下获取IEnumerable的第一个元素?

C# 如何在不迭代的情况下获取IEnumerable的第一个元素?,c#,iterator,ienumerable,C#,Iterator,Ienumerable,我需要取IEnumerable的第一个元素,但不需要迭代。我首先使用了,但它会导致一些错误,因为它会迭代。我知道我可以用enum做,但是我怎么做呢 您可以尝试使用FirstOrDefault。它代表第一个元素 int[] numbers = { }; int first = numbers.FirstOrDefault(); Console.WriteLine(first); IEnumerable就是这个名字所说的,一个可枚举的东西。它提供的唯一方法是IEnumerator GetEnume

我需要取IEnumerable的第一个元素,但不需要迭代。我首先使用了,但它会导致一些错误,因为它会迭代。我知道我可以用enum做,但是我怎么做呢

您可以尝试使用FirstOrDefault。它代表第一个元素

int[] numbers = { };
int first = numbers.FirstOrDefault();
Console.WriteLine(first);
IEnumerable就是这个名字所说的,一个可枚举的东西。它提供的唯一方法是IEnumerator GetEnumerator。每个扩展方法都会在一定程度上枚举IEnumerable

如果懒惰的评估/多重枚举是有问题的,我已经从数据库的结果集中得到了,在连接已经被处理之后进行了评估,请看,考虑一下枚举一次,例如通过将iQueDebug转换成一个带有iNeavaby.Telist./P>的列表。


备注:如果枚举可枚举项导致错误,则说明您的设计有缺陷。考虑使用另一个接口。< /P>请提供OK。什么是错误?如果您能详细说明错误,这将是很有帮助的。第一预设;首先建议你到底想做什么?First应该返回它找到的第一个元素,这样它就不会遍历所有元素。在我看来,FirstOrDefault是一个更好的选择。这个问题不连贯。如果不枚举一个可枚举项,就无法枚举它。