Exportovat (0) Tisk
Rozbalit vše
Tento článek byl přeložen strojově počítačem. Původní text zobrazíte přesunutím ukazatele myši nad jednotlivé věty článku. Další informace
Překlad
Originál

List<T>.GetEnumerator – metoda

Čítač výčtu, iteruje vrátí List<T>.

Obor názvů:  System.Collections.Generic
Sestavení:  mscorlib (v mscorlib.dll)

public List<T>.Enumerator GetEnumerator()

Příkaz foreach jazyka C# (v jazyce C++ for each, v jazyce Visual Basic For Each) maskuje složitost čítačů. Proto je doporučeno použití příkazu 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 čítač umístěn před první element v kolekci. Na této pozici Current není definována vlastnost. Proto musíte volat metodu MoveNext pro přechod enumerátoru na první element kolekce před čtením hodnoty Current.

Current Vlastnost vrátí stejný objekt, dokud MoveNext se nazývá. MoveNext nastavuje Current na další prvek.

Pokud MoveNext překoná konec kolekce, enumerátor je umístěn za poslední prvek v kolekci a MoveNext vrací hodnotu false. Pokud je enumerátor v této pozici, následná volání MoveNext rovněž vracejí hodnotu false. Pokud poslední volání metody MoveNext vrátilo hodnotu false, hodnota Current není definována. Nelze nastavit Current na první prvek kolekce znovu; Místo toho je nutné vytvořit novou instanci čítače.

Čítač zůstává platný tak dlouho, dokud kolekce zůstane beze změny. Pokud jsou provedeny změny v kolekci, například přidání, úprava nebo odstranění prvků, čítač je nenávratně zneplatněn a jeho chování není definováno.

Čítač nemá výhradní přístup ke kolekci. Proto výčet prostřednictvím kolekce není bezpečný pro přístup z více vláken. Pro zaručení bezpečného přístupu z více vláken během výčtu můžete kolekci během celého výčtu uzamknout. 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 kolekce v System.Collections.Generic oboru názvů nejsou synchronizovány.

Tato metoda je operace O(1).

.NET Framework

Podporováno v: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Podporováno v: 4, 3.5 SP1

Knihovny přenosných tříd

Podporováno v: Knihovny přenosných tříd

.NET pro aplikace pro Windows Store

Podporováno v: Windows 8

.NET pro aplikace pro Windows Phone

Podporováno v: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (role Server Core není podporována), Windows Server 2008 R2 (role Server Core je podporována s aktualizací SP1 nebo novější, architektura Itanium není podporována)

.NET Framework nepodporuje některé verze platforem. Seznam podporovaných verzí naleznete v tématu .NET – požadavky na systém.

Obsah vytvořený komunitou

Přidat
Zobrazit:
© 2014 Microsoft