任何人都可以向我解释 IEnumerable 和 IEnumerator 之间的区别是什么,
以及如何使用它们?
谢谢!!!
最佳答案
通常,一个 IEnumerable
是可以枚举的对象,例如列表或数组。安 IEnumerator
是一个存储枚举状态的对象。
它们不是一个相同的原因是您可以同时对同一个对象进行多个枚举 - 即使在单线程应用程序中也是如此。例如,考虑以下代码:
foreach (x in mylist)
{
foreach (y in mylist)
{
if (x.Value == y.Value && x != y)
{
// Found a duplicate value
}
}
}
如果
mylist
,这将正常工作是 IEnumerable
的正确实现, 但如果 mylist
会失败将自身作为枚举器返回。
关于.net - IEnumerable & IEnumerator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2635818/