iterator和枚举的区别

<p>对于.NET 3.5工作面试问题是“什么是一个迭代器和一个枚举器之间的区别”? P&gt; </p><p>这是一个核心区别之作,用什么LINQ等等。 P&gt; </p><p>不管怎样,有什么区别?我似乎无法在网络上找到了坚实的定义。毫无疑问,我能找到这两个词的意思,但我得到略有不同的答案。什么是面试的最佳答案? P&gt; </p><p> IMO的迭代器“迭代”过一个集合,枚举提供了迭代的功能,但是这被称为 P&gt; </p><p>此外,使用屈服关键字所述保存状态。到底这是什么状态呢?是否有这样做的好处发生的例子吗? P&gt;
</p>

30 浏览 1 回复
  gt   迭代   枚举   一个   集合  

回复

    <p>迭代意味着重复一些步骤,同时列举方式通过所有值的值集合中去。所以通常列举需要某种形式的迭代。 P&gt; </p><p>在这种方式,枚举是迭代,其中的步骤是从集合获得的值的特例。 P&gt; </p><p>请注意了“一般” - 枚举也可以递归执行,但递归和迭代的关系非常密切,我不会在乎这个小的差异 P&gt;。 </p><p>您也可以列举你不明确集合中存储的值。例如,您可以枚举的自然数,质数,或什么,但你会在枚举期间计算这些值,而不是从物理集合检索。你明白这种情况下用列举一些逻辑定义其值的虚拟集合。 P&gt; </p><hr/><p>我认为里德·科普塞了问题的实质。在C#中有列举的东西两个主要方面。 P&gt; </p><ol> <li>实施 和一个类实现 LI&gt; </li><li>实施的迭代器 声明 li&gt; OL&gt; <p>第一种方法是难以实现和使用对象进行枚举。第二种方法是更容易实现,并使用延续 P&gt; </p><p>在C#2+,迭代器是对的方式编译器自动生成IEnumerable和/或IEnumerable的&LT; T&GT;为你的接口。 P&gt; </p><p>如果没有迭代器,你需要创建一个类实现的IEnumerator A &gt;,包括电流,MoveNext和复位。这需要工作相当数量。通常情况下,你会创建implemtented的IEnumerator℃的专用类; T&GT;你的类型,然后yourClass.GetEnumerator()将构建私有类,并将其返回。 P&gt; <p>迭代器是编译器自动生成这个给你,用简单的语法(收益率)的方式。这可以让你在你的类实现的GetEnumerator()直接,没有被你指定了第二个类(IEnumerator的)。该类的建设,它的所有成员,为你做。 P&gt; </p><p>迭代器是非常适合开发者 - 一切都在一个非常有效的方式完成的,更努力 P&gt;。 </p><p>当您使用的foreach,两人将行为相同(只要你编写自定义的IEnumerator正确)。迭代器只是让生活变得更加简单。 P&gt;
    </p>
    </p></li></ol>

    石佳

相关信息

迭代器和枚举器的区别

<p>对于.NET 3.5的工作面试问题是“一个迭代器和一个枚举器之间的区别是什么”? P&gt; </p><p>这是一个核心区别之作,用什么LINQ等等。 P&gt; </p><p>总之,有什么区别?我似乎无法在网络上找到了坚实的定义。毫无疑问,我能找到这两个词的意思,但我得到稍微不同的答案。什么是面试的最佳答案? P&...

28 浏览 1 回复   gt   迭代   一个   枚举   集合  

在C C ++ SysRc枚举值

<p>我的工作我在哪里使用SysRc值作为返回值从类似的成功和失败OND总和枚举一些功能的项目。 现在我想知道如何让他们打印? P&gt; </p>

18 浏览 1 回复   gt   枚举   使用   ++   方式  

不可变的集合的ActionScript 3

<p>我一直在努力,最近实施的AS3一些干净的编码实践。其中的一个一直没有放弃从引用一个包含对象的数组。我控制添加和删除从一个类和Array的所有其他用户的点存在接收只读版本。 P&gt; </p><p>目前的只读版本的那一刻是的<em> ArrayIterator em&gt;的类我写的,它实现了一个典型的<em>迭代 em...

23 浏览 1 回复   gt   em   一个   使用   as3  

里面种使用枚举 - 编译器警告C4482 C ++

<p>我是用我的类的一个方法中枚举的全名。但我得到它说的<em>编译器警告“警告C4482:非标准扩展使用:枚举'富'在限定的名称中使用” em&gt;的。在C ++中,我们需要使用枚举没有合格的名字吗?但IMO,看起来难看。 P&gt; <p>有什么想法? P&gt; </p></em></p>

37 浏览 1 回复   枚举   gt   使用   警告   编译器  

是什么在C ++ STL集合和HashSet的区别?

<p>当我应该选择一个比其他。 在那里,你会建议使用合适的STL容器的指针。 P&gt; </p>

38 浏览 1 回复   一个   gt   ++   没有   标准