SortedDictionary<TKey,TValue>.Enumerator Struktura

Definicja

Wylicza elementy elementu SortedDictionary<TKey,TValue>.

public: value class SortedDictionary<TKey, TValue>::Enumerator : System::Collections::Generic::IEnumerator<System::Collections::Generic::KeyValuePair<TKey, TValue>>, System::Collections::IDictionaryEnumerator
public struct SortedDictionary<TKey,TValue>.Enumerator : System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.IDictionaryEnumerator
type SortedDictionary<'Key, 'Value>.Enumerator = struct
    interface IEnumerator<KeyValuePair<'Key, 'Value>>
    interface IEnumerator
    interface IDisposable
    interface IDictionaryEnumerator
type SortedDictionary<'Key, 'Value>.Enumerator = struct
    interface IEnumerator<KeyValuePair<'Key, 'Value>>
    interface IDisposable
    interface IDictionaryEnumerator
    interface IEnumerator
type SortedDictionary<'Key, 'Value>.Enumerator = struct
    interface IEnumerator<KeyValuePair<'Key, 'Value>>
    interface IDisposable
    interface IEnumerator
    interface IDictionaryEnumerator
type SortedDictionary<'Key, 'Value>.Enumerator = struct
    interface IEnumerator<KeyValuePair<'Key, 'Value>>
    interface IDictionaryEnumerator
    interface IEnumerator
    interface IDisposable
Public Structure SortedDictionary(Of TKey, TValue).Enumerator
Implements IDictionaryEnumerator, IEnumerator(Of KeyValuePair(Of TKey, TValue))

Parametry typu

TKey
TValue
Dziedziczenie
SortedDictionary<TKey,TValue>.Enumerator
Implementuje

Uwagi

Instrukcja foreach języka C# (for each w języku C++ For Each , w Visual Basic) ukrywa złożoność modułów wyliczania. W związku z tym użycie foreach jest zalecane, zamiast bezpośrednio manipulować modułem wyliczającym.

Moduły wyliczające mogą służyć do odczytu danych w kolekcji, ale nie można za ich pomocą modyfikować kolekcji źródłowej.

Początkowo moduł wyliczający jest umieszczony przed pierwszym elementem w kolekcji. Na tym stanowisku Current jest niezdefiniowany. Przed odczytaniem wartości parametru Currentnależy wywołać metodę MoveNext , aby przejść do pierwszego elementu kolekcji.

Właściwość Current zwraca ten sam obiekt do MoveNext momentu wywołania. MoveNext ustawia Current wartość na następny element.

Jeśli MoveNext przejdzie koniec kolekcji, moduł wyliczający jest umieszczony po ostatnim elemecie w kolekcji i MoveNext zwraca wartość false. Gdy moduł wyliczający znajduje się na tym stanowisku, kolejne wywołania zwracają MoveNext również polecenie false. Jeśli ostatnie wywołanie, które MoveNext ma być zwrócone false, Current jest niezdefiniowane. Nie można ponownie ustawić Current pierwszego elementu kolekcji. Zamiast tego należy utworzyć nowe wystąpienie modułu wyliczającego.

Moduł wyliczający zachowuje ważność tak długo, jak długo kolekcja pozostaje niezmieniona. Jeśli zmiany są wprowadzane do kolekcji, takie jak dodawanie, modyfikowanie lub usuwanie elementów, moduł wyliczający jest nieodwracalnie unieważniany, a następne wywołanie MoveNext lub IEnumerator.Reset zgłasza InvalidOperationExceptionelement .

Moduł wyliczający nie ma wyłącznego dostępu do kolekcji, w związku z tym wyliczanie w kolekcji nie jest wewnętrznie procedurą odporną na wielowątkowość. Aby zagwarantować bezpieczeństwo wątków podczas wyliczania, można zablokować kolekcję podczas całego procesu wyliczania. Aby zezwolić wielu wątkom na dostęp do kolekcji w celu odczytu i zapisu danych, należy zaimplementować własny mechanizm synchronizacji.

Domyślne implementacje kolekcji w System.Collections.Generic przestrzeni nazw nie są synchronizowane.

Właściwości

Current

Pobiera element na bieżącej pozycji modułu wyliczającego.

Metody

Dispose()

Zwalnia wszelkie zasoby używane przez element SortedDictionary<TKey,TValue>.Enumerator.

MoveNext()

Rozwija moduł wyliczający do następnego elementu .SortedDictionary<TKey,TValue>

Jawne implementacje interfejsu

IDictionaryEnumerator.Entry

Pobiera element na bieżącej pozycji modułu wyliczającego jako DictionaryEntry strukturę.

IDictionaryEnumerator.Key

Pobiera klucz elementu w bieżącej pozycji modułu wyliczającego.

IDictionaryEnumerator.Value

Pobiera wartość elementu na bieżącej pozycji modułu wyliczającego.

IEnumerator.Current

Pobiera element na bieżącej pozycji modułu wyliczającego.

IEnumerator.Reset()

Ustawia moduł wyliczający na jego początkową pozycję, która znajduje się przed pierwszym elementem w kolekcji.

Dotyczy

Zobacz też