星空网 > 软件开发 > ASP.net

关于迭代器中IEnumerable与IEnumerator的区别

首先是IEnumerable与IEnumerator的定义:

1.IEnumerable接口允许使用foreach循环,包含GetEnumerator()方法,可以迭代集合中的项。

2.IEnumerator接口是一个真正的集合访问器,它包含MoveNext()方法和Current属性,在foreach循环中,如果MoveNext()返回True,则就是用IEnumerator接口的Current属性来获取对象的一个引用,用于foreach循环。

下面是自定义的一个迭代器的例子:

Primer.CS

using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Ch11Ex03_Exam{  public class Primes  {    private long min;    private long max;    public Primes():this(2,100)    {          }    public Primes(long minNum,long maxNum)    {      if(minNum<2)      {        min=2;      }else{        min = minNum;      }      max = maxNum;    }    public IEnumerator GetEnumerator()//返回的是IEnumerator    {      for(long i=min;i<max;i++)      {        int flag = 1;        for(long j=2;j<Math.Sqrt(min);j++)        {          if(i%j==0)          {            flag = 0;            break;          }        }        if(flag==1)        {          yield return i;        }      }    }  }}

Program.CS:

using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Ch11Ex03_Exam{  class Program  {    static void Main(string[] args)    {      Primes s = new Primes(2, 100);      foreach(long i in s)      {        Console.WriteLine("{0}\t", i);      }      Console.ReadKey();    }  }}

 




原标题:关于迭代器中IEnumerable与IEnumerator的区别

关键词:ie

ie
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

欧代协议怎么签:https://www.goluckyvip.com/tag/73056.html
欧代信息是什么:https://www.goluckyvip.com/tag/73057.html
德国欧代:https://www.goluckyvip.com/tag/73058.html
欧代信息标签:https://www.goluckyvip.com/tag/73059.html
黑五没爆单:https://www.goluckyvip.com/tag/7306.html
欧代作用:https://www.goluckyvip.com/tag/73060.html
别犹豫了,品牌种草营销就是现在!:https://www.kjdsnews.com/a/1836479.html
安能物流的2024:变革不能停:https://www.kjdsnews.com/a/1836480.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流