国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#使用yield關鍵字讓自定義集合實現foreach遍歷的方法

2020-01-24 02:31:21
字體:
來源:轉載
供稿:網友

foreach遍歷是C#常見的功能,而本文通過實例形式展現了C#使用yield關鍵字讓自定義集合實現foreach遍歷的方法。具體步驟如下:

一般來說當我們創建自定義集合的時候為了讓其能支持foreach遍歷,就只能讓其實現IEnumerable接口(可能還要實現IEnumerator接口)

但是我們也可以通過使用yield關鍵字構建的迭代器方法來實現foreach的遍歷,且自定義的集合不用實現IEnumerable接口

注意:雖然不用實現IEnumerable接口 ,但是迭代器的方法必須命名為GetEnumerator(),返回值也必須是IEnumerator類型。

實例代碼以及簡單注釋說明如下:

class Person{    public string Name;    public void SayHi()    {      Console.WriteLine("Hello: {0}",this.Name);    }}//非常簡單的自定義集合(- -簡單到增加,刪除,索引器等功能都沒有實現) 該類沒有實現IEnumerable接口class PersonList{  Person[] pers =new Person[4];  public PersonList()  {    pers[0] = new Person() { Name = "1" };    pers[1] = new Person() { Name = "2" };    pers[2] = new Person() { Name = "3" };    pers[3] = new Person() { Name = "4" };  }//簡單的迭代器方法  public IEnumerator GetEnumerator()  {    foreach (Person item in pers)    {      //yield return 作用就是返回集合的一個元素,并移動到下一個元素上      yield return item;    }  }}class Program{    static void Main(string[] args)  {    PersonList list = new PersonList();    foreach (Person item in list)    {      item.SayHi();    }    Console.ReadLine();      }}

感興趣的讀者可以動手測試一下本文實例代碼,相信會有新的收獲。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 班戈县| 渑池县| 濮阳市| 南陵县| 泾阳县| 星子县| 项城市| 新昌县| 容城县| 张家川| 大关县| 石城县| 黄石市| 思南县| 喀什市| 大冶市| 博野县| 罗田县| 龙川县| 莆田市| 栾城县| 铜川市| 江山市| 黄冈市| 琼结县| 瑞安市| 保山市| 宁德市| 英德市| 东兴市| 修文县| 政和县| 九台市| 贡山| 康马县| 博客| 苍山县| 娄烦县| 钟祥市| 旺苍县| 八宿县|