如果一个人说特定的数据结构能够枚举,这意味着什么?

时间:2014-09-30 08:34:42

标签: .net c#-4.0

我在这个关于数据结构的论坛上读到了上一个问题,我引用了

  

" Array - 代表一个老式的内存数组 - 有点像普通类型[]数组的别名。
  可以列举。无法自动增长。我会假设插入和检索速度非常快。"

当他说阵列可以枚举时意味着什么?

1 个答案:

答案 0 :(得分:0)

如果您可以循环遍历该结构中的元素(如数组或可能包含许多对象的集合),则数据结构是可枚举的。

一个类不必实现IEnumerable可以使用foreach循环进行枚举,尽管我会考虑它的最佳实践'。这个类就足以让一个名为GetEnumerator的方法返回一个带有MoveNext方法和Current属性的对象,例如。

internal class Test 
{
    public Enumerator GetEnumerator()
    {
        return new Enumerator();
    }

    public struct Enumerator
    {
        public bool MoveNext()
        {
            return false;
        }

        public object Current
        {
            get { return null; }
        }
    }
}