SortedSet<T>.Enumerator Struktura
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wylicza elementy SortedSet<T> obiektu.
public: value class SortedSet<T>::Enumerator : System::Collections::Generic::IEnumerator<T>
public: value class SortedSet<T>::Enumerator : System::Collections::Generic::IEnumerator<T>, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public struct SortedSet<T>.Enumerator : System.Collections.Generic.IEnumerator<T>
public struct SortedSet<T>.Enumerator : System.Collections.Generic.IEnumerator<T>, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
[System.Serializable]
public struct SortedSet<T>.Enumerator : System.Collections.Generic.IEnumerator<T>, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type SortedSet<'T>.Enumerator = struct
interface IEnumerator<'T>
interface IEnumerator
interface IDisposable
type SortedSet<'T>.Enumerator = struct
interface IEnumerator<'T>
interface IEnumerator
interface IDisposable
interface IDeserializationCallback
interface ISerializable
[<System.Serializable>]
type SortedSet<'T>.Enumerator = struct
interface IEnumerator<'T>
interface IDisposable
interface IEnumerator
interface ISerializable
interface IDeserializationCallback
Public Structure SortedSet(Of T).Enumerator
Implements IEnumerator(Of T)
Public Structure SortedSet(Of T).Enumerator
Implements IDeserializationCallback, IEnumerator(Of T), ISerializable
Parametry typu
- T
- Dziedziczenie
- Atrybuty
- 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 właściwość jest niezdefiniowana. W związku z tym należy wywołać metodę MoveNext , aby przejść do pierwszego elementu kolekcji przed odczytaniem wartości Current.
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, aby MoveNext również zwrócić false
wartość . 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ć nowy obiekt 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; dlatego wyliczanie za pośrednictwem kolekcji nie jest wewnętrznie procedurą bezpieczną wą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 SortedSet<T>.Enumerator. |
MoveNext() |
Rozwija moduł wyliczający do następnego elementu kolekcji SortedSet<T> . |
Jawne implementacje interfejsu
IDeserializationCallback.OnDeserialization(Object) |
Implementuje ISerializable interfejs i zgłasza zdarzenie deserializacji po zakończeniu deserializacji. |
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. |
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Implementuje ISerializable interfejs i zwraca dane potrzebne do serializacji SortedSet<T> wystąpienia. |