最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#使用yield關(guān)鍵字讓自定義集合實(shí)現(xiàn)foreach遍歷的方法

 更新時(shí)間:2014年08月18日 11:35:37   投稿:shichen2014  
這篇文章主要介紹了C#使用yield關(guān)鍵字讓自定義集合實(shí)現(xiàn)foreach遍歷的方法,需要的朋友可以參考下

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

一般來(lái)說(shuō)當(dāng)我們創(chuàng)建自定義集合的時(shí)候?yàn)榱俗屍淠苤С謋oreach遍歷,就只能讓其實(shí)現(xiàn)IEnumerable接口(可能還要實(shí)現(xiàn)IEnumerator接口)

但是我們也可以通過(guò)使用yield關(guān)鍵字構(gòu)建的迭代器方法來(lái)實(shí)現(xiàn)foreach的遍歷,且自定義的集合不用實(shí)現(xiàn)IEnumerable接口

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

實(shí)例代碼以及簡(jiǎn)單注釋說(shuō)明如下:

class Person
{
    public string Name;
    public void SayHi()
    {
      Console.WriteLine("Hello: {0}",this.Name);
    }
}
//非常簡(jiǎn)單的自定義集合(- -簡(jiǎn)單到增加,刪除,索引器等功能都沒(méi)有實(shí)現(xiàn)) 該類沒(méi)有實(shí)現(xiàn)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" };

  }
//簡(jiǎn)單的迭代器方法
  public IEnumerator GetEnumerator()
  {
    foreach (Person item in pers)
    {
      //yield return 作用就是返回集合的一個(gè)元素,并移動(dòng)到下一個(gè)元素上
      yield return item;
    }

  }
}
class Program
{  
  static void Main(string[] args)
  {
    PersonList list = new PersonList();
    foreach (Person item in list)
    {
      item.SayHi();
    }
    Console.ReadLine();    
  }
}

感興趣的讀者可以動(dòng)手測(cè)試一下本文實(shí)例代碼,相信會(huì)有新的收獲。

相關(guān)文章

  • C# 面向?qū)ο笕筇匦裕悍庋b、繼承、多態(tài)

    C# 面向?qū)ο笕筇匦裕悍庋b、繼承、多態(tài)

    本文主要介紹了面向?qū)ο蟮娜筇匦裕悍庋b、繼承、多態(tài),提供了簡(jiǎn)單的示例供大家參考和理解。
    2016-03-03
  • C# 8.0新特性介紹

    C# 8.0新特性介紹

    C# 語(yǔ)言是在2000發(fā)布的,至今已正式發(fā)布了7個(gè)版本,每個(gè)版本都包含了許多令人興奮的新特性和功能更新。下面通過(guò)本文給大家分享下C# 8.0的三個(gè)令人興奮的新特性,需要的朋友參考下吧
    2017-10-10
  • C#和lua相互調(diào)用的方法教程

    C#和lua相互調(diào)用的方法教程

    lua是一種腳本語(yǔ)言,可以方便的移植到各種宿主語(yǔ)言中,并且可以支持熱更新,在游戲開(kāi)發(fā)中也能當(dāng)做主要的語(yǔ)言來(lái)編寫(xiě)游戲的邏輯,所以這篇文章主要給大家介紹了關(guān)于C#和lua相互調(diào)用的方法教程,需要的朋友可以參考下。
    2017-11-11
  • C#實(shí)現(xiàn)對(duì)AES加密和解密的方法

    C#實(shí)現(xiàn)對(duì)AES加密和解密的方法

    C#實(shí)現(xiàn)對(duì)AES加密和解密的方法,需要的朋友可以參考一下
    2013-04-04
  • 算法基礎(chǔ)之算法設(shè)計(jì)與分析

    算法基礎(chǔ)之算法設(shè)計(jì)與分析

    這篇文章主要介紹了算法基礎(chǔ)之算法設(shè)計(jì)與分析,貪心算法是一種解決優(yōu)化問(wèn)題的算法設(shè)計(jì)方法,其核心思想是在每一步選擇當(dāng)前狀態(tài)下的最優(yōu)解,從而希望最終達(dá)到全局最優(yōu)解,需要的朋友可以參考下
    2023-10-10
  • 詳解C#實(shí)現(xiàn)在Excel單元格中應(yīng)用多種字體格式

    詳解C#實(shí)現(xiàn)在Excel單元格中應(yīng)用多種字體格式

    在Excel中,可對(duì)單元格中的字符串設(shè)置多種不同樣式。本文,將以C#及VB.NET代碼為例,介紹如何在Excel同一個(gè)單元格中應(yīng)用多種字體樣式,感興趣的可以了解一下
    2022-05-05
  • C#減少垃圾回收壓力的字符串操作詳解

    C#減少垃圾回收壓力的字符串操作詳解

    這篇文章給大家詳細(xì)分析了C#減少垃圾回收壓力的字符串操作的相關(guān)知識(shí)點(diǎn),有興趣的朋友參考學(xué)習(xí)下吧。
    2018-03-03
  • C#更新SQLServer中TimeStamp字段(時(shí)間戳)的方法

    C#更新SQLServer中TimeStamp字段(時(shí)間戳)的方法

    這篇文章主要介紹了C#更新SQLServer中TimeStamp字段(時(shí)間戳)的方法,涉及C#操作數(shù)據(jù)庫(kù)字段的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • WPF實(shí)現(xiàn)類似360安全衛(wèi)士界面的程序源碼分享

    WPF實(shí)現(xiàn)類似360安全衛(wèi)士界面的程序源碼分享

    最近在網(wǎng)上看到了新版的360安全衛(wèi)士,感覺(jué)界面還不錯(cuò),于是用WPF制作了一個(gè),時(shí)間有限,一些具體的控件沒(méi)有制作,用圖片代替了。感興趣的朋友一起跟著小編學(xué)習(xí)WPF實(shí)現(xiàn)類似360安全衛(wèi)士界面的程序源碼分享
    2015-09-09
  • C# winform實(shí)現(xiàn)右下角彈出窗口結(jié)果的方法

    C# winform實(shí)現(xiàn)右下角彈出窗口結(jié)果的方法

    這篇文章主要介紹了C# winform實(shí)現(xiàn)右下角彈出窗口結(jié)果的方法,結(jié)合實(shí)例形式分析了C#窗口操作的相關(guān)技巧,需要的朋友可以參考下
    2017-06-06

最新評(píng)論

阿克| 突泉县| 旅游| 花莲市| 泉州市| 西畴县| 礼泉县| 兰考县| 瓦房店市| 遂溪县| 安吉县| 普洱| 永福县| 罗源县| 垣曲县| 荔波县| 莱芜市| 科尔| 京山县| 精河县| 湖口县| 霍州市| 城口县| 呼和浩特市| 鸡泽县| 孟州市| 邛崃市| 石河子市| 平和县| 黄梅县| 张掖市| 余干县| 盐池县| 蕲春县| 大方县| 道真| 广德县| 洛川县| 北票市| 将乐县| 民县|