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

首頁 > 學院 > 開發設計 > 正文

使用yield關鍵字讓自定義集合實現foreach遍歷

2019-11-14 16:29:54
字體:
來源:轉載
供稿:網友

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

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

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

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

 1     class Person 2     { 3         public string Name; 4         public void SayHi() 5         { 6             Console.WriteLine("Hello: {0}",this.Name); 7         } 8     } 9     //非常簡單的自定義集合(- -簡單到增加,刪除,索引器等功能都沒有實現) 該類沒有實現IEnumerable接口10     class PersonList11     {12         Person[] pers =new Person[4];13         public PersonList()14         {15             pers[0] = new Person() { Name = "1" };16             pers[1] = new Person() { Name = "2" };17             pers[2] = new Person() { Name = "3" };18             pers[3] = new Person() { Name = "4" };19 20         }21         //簡單的迭代器方法22         public IEnumerator GetEnumerator()23         {24             25             foreach (Person item in pers)26             {27                 //yield return 作用就是返回集合的一個元素,并移動到下一個元素上28                 yield return item;29             }30 31         }32     }33     class PRogram34     {       35         static void Main(string[] args)36         {37             PersonList list = new PersonList();38             foreach (Person item in list)39             {40                 item.SayHi();41             }42             Console.ReadLine();           43         }44     }

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁城县| 巩义市| 遵化市| 治多县| 克拉玛依市| 紫阳县| 安化县| 巨鹿县| 新龙县| 镇平县| 手机| 乌鲁木齐市| 崇阳县| 祁阳县| 阿荣旗| 博客| 安国市| 德州市| 中阳县| 岳西县| 密云县| 长沙市| 那曲县| 舞钢市| 毕节市| 鄂伦春自治旗| 邯郸县| 海门市| 盐津县| 岑溪市| 枣庄市| 银川市| 绵竹市| 大兴区| 盈江县| 蓬安县| 开封县| 柞水县| 祁门县| 罗定市| 达州市|