共用方式為


Dictionary<TKey,TValue>.KeyCollection.GetEnumerator 方法

定義

傳回在 Dictionary<TKey,TValue>.KeyCollection 中逐一查看的列舉值。

public:
 System::Collections::Generic::Dictionary<TKey, TValue>::KeyCollection::Enumerator GetEnumerator();
public System.Collections.Generic.Dictionary<TKey,TValue>.KeyCollection.Enumerator GetEnumerator ();
member this.GetEnumerator : unit -> System.Collections.Generic.Dictionary<'Key, 'Value>.KeyCollection.Enumerator
Public Function GetEnumerator () As Dictionary(Of TKey, TValue).KeyCollection.Enumerator

傳回

Dictionary<TKey,TValue>.KeyCollection.EnumeratorDictionary<TKey,TValue>.KeyCollection

備註

foreach C++ 中 C# 語言 (for each 的語句,For Each在 Visual Basic 中) 會隱藏列舉值的複雜度。 因此,建議您使用 foreach,而不要直接使用列舉值。

列舉程式可以用來讀取集合中的資料,但是無法用來修改基礎集合。

一開始,列舉程式位在集合中的第一個項目之前。 在這個位置上,Current 並未定義。 您必須先呼叫 MoveNext ,才能將列舉值前移至集合的第一個專案,才能讀取的值 Current

Current 會傳回相同的物件直到呼叫 MoveNextMoveNext 會將 Current 設定為下一個項目。

如果 MoveNext 傳遞集合結尾,列舉值會放在集合的最後一個專案後面,並 MoveNextfalse回 。 當列舉值位於這個位置時,後續呼叫 MoveNext 也會傳回 false。 如果最後一 MoveNext 次呼叫傳 false回 , Current 則為未定義。 您不能再次將 Current 設定為集合的第一個項目;您必須建立新的列舉值執行個體。

只要集合維持不變,列舉值就仍維持有效。 如果對集合進行變更,例如加入項目或變更容量,列舉值就會無法復原,而下一次呼叫 MoveNextIEnumerator.Reset 會擲回 InvalidOperationException

僅限 .NET Core 3.0+ :唯一不會使列舉值失效的變動方法為 RemoveClear

列舉程式沒有集合的獨佔存取權,因此,列舉集合內容本質上並不是安全的執行緒程序。 若要確保列舉期間的執行緒安全性,您可以在整個列舉期間鎖定集合。 若要讓多重執行緒能夠存取集合以便進行讀取和寫入,您必須實作自己的同步處理。

中的 System.Collections.Generic 集合預設實作不會同步處理。

這個方法是 O (1) 作業。

適用於

另請參閱