IEnumerator & IEnumerable

IEnumerator

  用于遍历一个对象,IEnumerator在System.Collections命名空间中。

    public interface IEnumerator
    {
        object Current
        {
            get;
        }

        bool MoveNext ();
        void Reset ();
    }

IEnumerable

  用于遍历一个对象是否能被遍历,IEnumerable在System.Collections命名空间中。

    public interface IEnumerable
    {
        IEnumerator GetEnumerator ();
    }

  一个对象如何被foreach进行迭代,必须实现上述2个interface。

参考:

1、http://msdn.microsoft.com/zh-cn/library/58e146b7(v=vs.80).aspx

2、http://blog.csdn.net/byondocean/article/details/6871881

IEnumerator & IEnumerable

时间: 2024-12-28 21:06:58

IEnumerator & IEnumerable的相关文章

IEnumerator/ IEnumerable/ yield return/ StartCoroutine 详解

IEnumerator/ IEnumerable public interface IEnumerable { IEnumerator GetEnumerator(); } public interface IEnumerator { bool MoveNext(); void Reset(); Object Current { get; } } 在两者的使用上,有下面几点需要注意 1.一个Collection要支持foreach方式的遍历,必须实现IEnumerable接口(亦即,必须以某种方

C# IEnumerator与 IEnumerable

1. 接口的使用 (1)  首先定义接口 public interface IBattleMapManager : { Stages CurrentStage { get; } event EventHandler<BeginFightEventArgs> EnterFight; } (2) 用定义实现类- 实现接口 public class BattleMapManager : IBattleMapManager, IDisposable { public Stages CurrentSta

IEnumerable &amp; IEnumerator

IEnumerable 只有一个方法:IEnumerator GetEnumerator(). INumerable 是集合应该实现的一个接口,这样,就能用 foreach 来遍历这个集合. IEnumerator 有Current属性,MoveNext(), Reset()两个方法. 当 foreach 使用到一个 IEnumerable 的集合上的时候,遍历是这样开始的: 1. 调用 GetEnumerator() 得到一个 IEnumerator 的对象. 2. 调用 MoveNext()

IList,ICollection,IEnumerable,IEnumerator,IQueryable

1.首先看一个简单的例子 int[] myArray = { 1, 32, 43, 343 }; IEnumerator myie = myArray.GetEnumerator(); myie.Reset(); while (myie.MoveNext()) { int i = (int)myie.Current; Console.WriteLine("Value: {0}", i); } 相信很多人都不会像上面这样去遍历myArray这个数组,通常我们这样会这样做 foreach

IEnumerable、GetEnumerator、IEnumerator的理解

概念文字性的东西,我们就不说了,这里我们来点具体的实例第呀: 实例一: using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Pratice001 { public class Test:IEnumerable { private static in

C#接口之IEnumerable,IEnumerator

IEnumerable 截图来源于https://msdn.microsoft.com/zh-cn/library/system.collections.ienumerable.getenumerator.aspx IEnumerable只包含一个抽象方法GetEnumerable(),它返回一个可用于循环访问集合的IEnumberator对象.我们可以通过定义foreach语句功能实现并支持非泛型方法的迭代. 在MSDN上给出了一个关于GetEnumerable()方法的例子: 1 using

[转]那些年我还不懂:IList,ICollection,IEnumerable,IEnumerator,IQueryable

1.首先看一个简单的例子 int[] myArray = { 1, 32, 43, 343 }; IEnumerator myie = myArray.GetEnumerator(); myie.Reset(); while (myie.MoveNext()) { int i = (int)myie.Current; Console.WriteLine("Value: {0}", i); } 相信很多人都不会像上面这样去遍历myArray这个数组,通常我们这样会这样做 foreach

实现自定义集合的可枚举类型(IEnumerable)和枚举数(IEnumerator )

下面的代码示例演示如何实现自定义集合的 IEnumerable 和 IEnumerator 接口: 1 using System; 2 using System.Collections; 3 using System.Collections.Generic; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace ConsoleApplication1 9 { 10 publi

IEnumerable和IEnumerator详解

引言 IEnumerable是可枚举的所有非泛型集合的基接口, IEnumerable包含一个方法GetEnumerator(),该方法返回一个IEnumerator:IEnumerator提供通过Current属性以及MoveNext()和Reset()方法来循环访问集合的功能. IEnumerable 接口 公开枚举数,该枚举数支持在非泛型集合上进行简单迭代.接口源码如下: public interface IEnumerable { [DispId(-4), __DynamicallyIn