代码之家  ›  专栏  ›  技术社区  ›  sandalone

对象中的枚举器是什么?

  •  1
  • sandalone  · 技术社区  · 14 年前

    这行代码让我困惑:

    List<string> keys = new List<string>();
    IDictionaryEnumerator ca = cache.GetEnumerator();
    while (ca.MoveNext())
    {
      keys.Add(ca.Key.ToString());
    }
    

    什么是枚举器?它与枚举有关吗?我试着找一个关于枚举器的教程,但是没有成功。希望有人有耐心向我解释。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Henk Holterman    14 年前

    您不会显示“缓存”的实际类型,但您的代码相当于:

    foreach(var ca in cache)  
    {
       keys.Add(ca.Key.ToString();
    }
    

    foreach() 也使用枚举器,但通过编译器生成的代码进行清理。