乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      IEnumerable接口和迭代器介紹

       kittywei 2012-02-24

      一、概述

      1.迭代器是可以返回相同類型的值的有序序列的一組代碼片段。

      2.迭代器可以用作方法,get 訪問器

      3.使用yield return 返回每個值,yield break 可以中止迭代

      4.可以在一個類中使用多個迭代。

      二、構(gòu)建自己的迭代器

      如何構(gòu)建自己的迭代器呢。

      1、最常用的方法是實現(xiàn)IEnumerable接口的GetEnumerator() 方法。

      如下:

      public IEnumerator GetEnumerator()  
      {  
          for (int i = 0; i < 100; i++)  
          {  
              yield return "耶穌的迭代器,序號:"+ i + " -----!";  
          }  

      此類必須繼承接口IEnumerable.即:public class TRJEnumerable:IEnumerable

      這樣,就實現(xiàn)了自己的一個迭代器,可以在別的地方應(yīng)用了.

          TRJEnumerable trjEnumerable = new TRJEnumerable();

                  foreach (string s in trjEnumerable)
                  {
                      Console.WriteLine(s);
                  }

      2、可以不繼承接口IEnumerbale,但在類的內(nèi)部要實現(xiàn)一個返回IEnumerable類型的方法。

      如下:

      public class TRJIEnumerbaleDemon1
         {
             public IEnumerable SampleIterator()
             {
                 yield return "耶穌:1";
                 yield return "耶穌:2";
                 yield return "耶穌:3";
                 yield break;
                 yield return "耶穌:4";
             }
         }

      調(diào)用的時候:

       TRJIEnumerbaleDemon1 trjiEnumerbaleDemon1 = new TRJIEnumerbaleDemon1();

                  foreach (string value in trjiEnumerbaleDemon1.SampleIterator())
                  {
                      Console.WriteLine(value);
                  }

      當(dāng)然,這個自定義方法可以帶有參數(shù)。比如:想對同一數(shù)據(jù)源執(zhí)行2種不同的訪問形式,可以提供一個按升序返回元素的迭代器,而提供按降序返回元素的另一個迭代器。


             /// <summary>
             /// 升序迭代
             /// </summary>
             /// <param name="start"></param>
             /// <param name="end"></param>
             /// <returns></returns>
             public IEnumerable ASCIterator(int start,int end)
             {
                 if (start<=end)
                 {
                     for(int i=start;i<=end;i++)
                     {
                         yield return "對應(yīng)的耶穌是:" + i;
                     }
                 }
             }

      這樣可以隨心所欲的控制返回的值.

      3、應(yīng)用

      最近在做一個小工具,數(shù)據(jù)源是一些類型,比如:int ,long,string,byte,zcInt,zcBool等。

      可以把這樣類型配置在一個xml中,然后程序啟動的時候讀取。自定義自己的類型迭代器,返回自己的類型值。

      4、對接口IEnumerable和IEnumerator的區(qū)別不是怎么了解,但大致看了一下:

      IEnumerable 接口只有方法GetIEnumerator()這個方法。

      IEnumerator接口有一個屬性,2個方法:MoveNext(),Reset(),Current。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多