国产探花免费观看_亚洲丰满少妇自慰呻吟_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();      }}

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泽库县| 雷州市| 九台市| 金华市| 慈利县| 和顺县| 绥滨县| 黄陵县| 克东县| 萝北县| 徐水县| 镇江市| 康定县| 望城县| 修文县| 大冶市| 庐江县| 北宁市| 镇宁| 抚远县| 鸡东县| 灵宝市| 广水市| 若羌县| 赤壁市| 巨野县| 门头沟区| 祁阳县| 黔江区| 海南省| 铁岭县| 乌鲁木齐县| 喀喇沁旗| 张家港市| 泊头市| 寿光市| 伊通| 哈巴河县| 伊通| 银川市| 庆安县|