Sdílet prostřednictvím


LinkedList<T>.Enumerator Struktura

Definice

Vytvoří výčet prvků objektu LinkedList<T>.

public: value class LinkedList<T>::Enumerator : System::Collections::Generic::IEnumerator<T>
public: value class LinkedList<T>::Enumerator : System::Collections::Generic::IEnumerator<T>, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public struct LinkedList<T>.Enumerator : System.Collections.Generic.IEnumerator<T>
public struct LinkedList<T>.Enumerator : System.Collections.Generic.IEnumerator<T>, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
[System.Serializable]
public struct LinkedList<T>.Enumerator : System.Collections.Generic.IEnumerator<T>, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type LinkedList<'T>.Enumerator = struct
    interface IEnumerator<'T>
    interface IEnumerator
    interface IDisposable
type LinkedList<'T>.Enumerator = struct
    interface IEnumerator<'T>
    interface IEnumerator
    interface IDisposable
    interface IDeserializationCallback
    interface ISerializable
[<System.Serializable>]
type LinkedList<'T>.Enumerator = struct
    interface IEnumerator<'T>
    interface IDisposable
    interface IEnumerator
    interface ISerializable
    interface IDeserializationCallback
Public Structure LinkedList(Of T).Enumerator
Implements IEnumerator(Of T)
Public Structure LinkedList(Of T).Enumerator
Implements IDeserializationCallback, IEnumerator(Of T), ISerializable

Parametry typu

T
Dědičnost
LinkedList<T>.Enumerator
Atributy
Implementuje

Poznámky

Příkaz foreach jazyka C# (for each v jazyce C++, For Each v jazyce Visual Basic) skrývá složitost enumerátorů. Proto se doporučuje použít foreach místo přímé manipulace s enumerátorem.

Enumerátory lze používat ke čtení dat v kolekci, nikoli však k úpravě zdrojové kolekce.

Zpočátku je enumerátor umístěn před prvním prvkem v kolekci. Na této pozici Current není definován. Proto je nutné před čtením hodnoty Currentvolat MoveNext k posunu enumerátoru na první prvek kolekce.

Current vrátí stejný objekt, dokud MoveNext není volána. MoveNext nastaví Current na další prvek.

Pokud MoveNext projde konec kolekce, enumerátor se umístí za poslední prvek v kolekci a MoveNext vrátí false. Když je enumerátor na této pozici, následné volání také MoveNext vrátí false. Pokud je poslední volání MoveNext vráceno false, Current není definováno. Nelze znovu nastavit Current na první prvek kolekce; místo toho musíte vytvořit novou instanci enumeratoru.

Enumerátor zůstane platný, dokud kolekce zůstane beze změny. Pokud jsou v kolekci provedeny změny, například přidání, úprava nebo odstranění prvků, enumerátor je nenávratně zneplatněný a další volání MoveNext nebo IEnumerator.Reset vyvolá InvalidOperationException.

Enumerátor nemá výhradní přístup ke kolekci; proto výčet prostřednictvím kolekce není vnitřně procedurou bezpečnou pro přístup z více vláken. Chcete-li zajistit bezpečnost vláken během výčtu, můžete uzamknout kolekci během celého výčtu. Chcete-li více vláknům umožnit přístup ke kolekci pro čtení a zápis, musíte implementovat svou vlastní synchronizaci.

Výchozí implementace kolekcí v nástroji System.Collections.Generic se nesynchronují.

Vlastnosti

Current

Získá prvek na aktuální pozici enumerátoru.

Metody

Dispose()

Uvolní všechny prostředky používané nástrojem LinkedList<T>.Enumerator.

MoveNext()

Posune enumerátor na další prvek objektu LinkedList<T>.

Explicitní implementace rozhraní

IDeserializationCallback.OnDeserialization(Object)

Implementuje ISerializable rozhraní a vyvolá událost deserializace po dokončení deserializace.

IEnumerator.Current

Získá prvek na aktuální pozici enumerátoru.

IEnumerator.Reset()

Nastaví enumerátor na jeho počáteční pozici, která je před prvním prvkem v kolekci. Tato třída se nemůže dědit.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Implementuje ISerializable rozhraní a vrací data potřebná k serializaci LinkedList<T> instance.

Platí pro

Viz také