首頁  >  文章  >  後端開發  >  c# 索引與迭代器的範例程式碼詳解

c# 索引與迭代器的範例程式碼詳解

黄舟
黄舟原創
2017-03-04 10:16:211437瀏覽

                        以#是一種設計想法和設計模式,在##C

#中可以方便的實作一個迭代器,即實作

Ienumerator接口。例如我有一個student類,現在想封裝一個studentCollection,程式碼是這樣的: #Student類別: 

StudentCollection類別:

 ##很簡單的封裝,僅有一個字段,那就是studentList,

#類型是

list1f479e44f2c9bd2301ecbd2b69e4d7bf

##Ienumerator 接口的程式碼我借助了studentList,因為這個類別實作了這個接口,因此拿來用就好了。這樣我就可以對studentCollection進行foreach遍歷了:##  程式碼說明:

1.

#new

一個

studentCollection對象,並使用初始化器一一初始化每一個 student物件#2.        #用

foreach

遍歷每一個student 3.        # 取得每個人的名字累加到字串,然後彈出提示方塊顯示

########################

 

有其他方式實作Ienumerator這個介面嗎?答案是肯定的,程式碼如下:


public IEnumerator GetEnumerator()
        {
            foreach (Student s in studentList)
            {
                yield return s;////使用yield关键字实现迭代器
            }
        }


關於索引符以及索引符重載:

細心的讀者可能已經發現了,在##studentCollection#類別中,我定義了兩個索引符:

/////透過索引來存取#

 public Student this[int index]
        {
            get
            {
                return studentList[index];
            }
        }

////透過學生姓名來存取

       

 public Student this[string name]
        {
            get { return studentList.Single(s => s.StudentName == name); }
        }

索引符號重載機制使得封裝顯得更靈活,更強大。

# 以上就是c# 索引與迭代器的範例程式碼詳解的內容,更多相關內容請關注PHP中文網(www.php.cn)!



#

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn