MethodDataCollection.IEnumerable.GetEnumerator 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
傳回逐一查看 IEnumerator的 MethodDataCollection。
virtual System::Collections::IEnumerator ^ System.Collections.IEnumerable.GetEnumerator() = System::Collections::IEnumerable::GetEnumerator;
System.Collections.IEnumerator IEnumerable.GetEnumerator();
abstract member System.Collections.IEnumerable.GetEnumerator : unit -> System.Collections.IEnumerator
override this.System.Collections.IEnumerable.GetEnumerator : unit -> System.Collections.IEnumerator
Function GetEnumerator () As IEnumerator Implements IEnumerable.GetEnumerator
傳回
A IEnumerator 代表 MethodDataCollection。
實作
備註
C# 語言的 foreach 陳述(Visual Basic 中為 for each)隱藏了列舉器的複雜性。 因此,建議使用 foreach ,而非直接操作列舉器。
列舉器可用於讀取集合中的資料,但無法用來修改底層集合。
最初,列舉器會被放置在集合中的第一個元素之前。 Reset 同時也讓普查員回到這個位置。 在這個位置,叫喊 Current 會拋出例外。 因此,您必須先呼叫 MoveNext 列舉器先將列舉器推進到集合的第一個元素,再讀取 的 Current值。
Current 回傳相同物件,直到被呼叫其中一 MoveNext 或 Reset 。 MoveNext 設定 Current 為下一個元素。
若 MoveNext 通過集合的末尾,列舉器會位於集合的最後一個元素之後,並 MoveNext 返回 false。 當列舉器處於此位置時,後續呼叫 MoveNext 也返回 false。 如果最後一次呼叫回傳MoveNext,false呼叫Current會拋出例外。 若要再次設定 Current 為集合的第一個元素,你可以呼叫 Reset ,接著 MoveNext。
只要集合未曾改變,列舉器仍然有效。 若對集合進行變更,例如新增、修改或刪除元素,列舉子將無法恢復地失效,下一次呼叫 MoveNext 或 Reset 會拋 InvalidOperationException出 。 若集合在與MoveNextCurrent之間Current被修改,則會回傳該集合所設定的元素,即使列舉器已被失效。
列舉員並非擁有收藏的獨家存取權;因此,透過集合列舉本質上並非執行緒安全的程序。 即使集合同步處理,其他線程仍然可以修改集合,這會導致列舉值擲回例外狀況。 若要保證列舉期間的線程安全性,您可以在整個列舉期間鎖定集合,或攔截其他線程所做的變更所產生的例外狀況。
此方法是 O(1) 作業。