你的位置:首页 > 软件开发 > ASP.net > 关于迭代器中IEnumerable与IEnumerator的区别

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

发布时间:2016-04-09 19:00:14
首先是IEnumerable与IEnumerator的定义:1.IEnumerable接口允许使用foreach循环,包含GetEnumerator()方法,可以迭代集合中的项。2.IEnumerator接口是一个真正的集合访问器,它包含MoveNext()方法和Current属 ...

首先是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;        }      }    }  }}

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

关键词:ie

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