2010-06-14 61 views
1

我不知道任何關於Ienumerable對象.net中的Ienumarble接口的作用是什麼?請告訴我它是否在建? .net中的每個類都自動實現了Ienumarable接口?爲什麼需要實現萬能接口?它包含什麼方法&他們扮演什麼角色。請詳細解釋。.net中可枚舉對象的基本作用是什麼?

+3

您是否嘗試過閱讀文檔? MSDN?谷歌?如果沒有這些幫助,請具體說明您不明白的內容。 – shahkalpesh 2010-06-14 06:47:38

回答

1

簡而言之,IEnumerable公開了一個枚舉器,該枚舉器允許簡單迭代非通用集合。

它基本上允許foreach循環一個集合,即:

foreach (Control control in this.Controls) 
{ 
    // Do something 
} 

你需要在你自己的類中使用IEnumable的唯一方法是GetEnumerator()返回IEnumerator

的IEnumerator的返回必須實現以下方法的類:

void Reset(); 
object Current(); 
bool MoveNext(); 

一個IEnumerator類的一個基本的例子,從here採取:

private class ClassEnumerator : IEnumerator 
{ 
    private ClassList _classList; 
    private int _index; 

    public ClassEnumerator(ClassList classList) 
    { 
     _classList = classList; 
     _index = -1; 
    } 

    #region IEnumerator Members 

    public void Reset() 
    { 
     _index = -1; 
    } 

    public object Current 
    { 
     get 
     { 
      return _classList._students[_index]; 
     } 
    } 

    public bool MoveNext() 
    { 
     _index++; 
     if (_index >= _classList._students.Count) 
      return false; 
     else 
      return true; 
    } 

    #endregion 
} 
+0

**通過非泛型**集合。 – 2010-06-14 06:47:59

+0

@Lukas - woops。 – GenericTypeTea 2010-06-14 06:50:04

+0

@LukasŠalkauskas,請詳細說明,因爲MSDN文檔只是陳述「收集」 - 而不是「非通用收集」。 – Fenton 2010-06-14 06:51:45