SortedSet<T>.Enumerator Struktura
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří výčet prvků objektu SortedSet<T> .
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
- Dědičnost
- Atributy
- Implementuje
Poznámky
Příkaz foreach jazyka C# (For Each v jazyce Visual Basic) skryje složitost výčtů. Proto se místo přímé manipulace s enumerátorem doporučuje použití foreach .
Enumerátory lze použít ke čtení dat v kolekci, ale nelze je použít k úpravě podkladové kolekce.
Na začátku je enumerátor umístěn před prvním prvkem v kolekci. V této pozici Current není vlastnost definována. Proto je nutné volat metodu MoveNext pro přechod enumerátoru na první prvek kolekce před čtením hodnoty Current.
Current vrátí stejný objekt, dokud MoveNext nebude volána. MoveNext nastaví Current na další prvek.
Pokud MoveNext předá konec kolekce, enumerátor je umístěn za posledním prvkem v kolekci a MoveNext vrátí .false Pokud je enumerátor na této pozici, následná volání vrátit MoveNext také false. Pokud se vrátí poslední volání MoveNextfalse, Current není definováno. Znovu nelze nastavit Current první prvek kolekce. Místo toho je nutné vytvořit nový objekt enumerátoru.
Enumerátor zůstane platný, dokud kolekce zůstane beze změny. Pokud jsou v kolekci provedeny změny, například přidání, úpravy nebo odstranění prvků, enumerátor je nenávratně neplatný a další volání MoveNext nebo IEnumerator.Reset vyvolá výjimku InvalidOperationException.
Enumerátor nemá výhradní přístup k kolekci; proto výčet prostřednictvím kolekce není vnitřně bezpečným postupem pro přístup z více vláken. Chcete-li zaručit bezpečnost vláken během výčtu, můžete kolekci uzamknout během celého výčtu. Pokud chcete povolit přístup ke kolekci více vlákny pro čtení a zápis, musíte implementovat vlastní synchronizaci.
Výchozí implementace kolekcí v System.Collections.Generic oboru názvů nejsou synchronizovány.
Vlastnosti
| Name | Description |
|---|---|
| Current |
Získá prvek na aktuální pozici enumerátoru. |
Metody
| Name | Description |
|---|---|
| Dispose() |
Uvolní všechny prostředky používané nástrojem SortedSet<T>.Enumerator. |
| MoveNext() |
Přejde enumerátor na další prvek SortedSet<T> kolekce. |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| IDeserializationCallback.OnDeserialization(Object) |
Implementuje ISerializable rozhraní a vyvolá deserializační událost po dokončení deserializace. |
| IEnumerator.Current |
Získá prvek na aktuální pozici enumerátoru. |
| IEnumerator.Reset() |
Nastaví enumerátor na počáteční pozici, která je před prvním prvkem v kolekci. |
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Implementuje ISerializable rozhraní a vrací data potřebná k serializaci SortedSet<T> instance. |