List<T>.GetEnumerator Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Retourneert een enumerator die door de List<T>.
public:
System::Collections::Generic::List<T>::Enumerator GetEnumerator();
public System.Collections.Generic.List<T>.Enumerator GetEnumerator();
member this.GetEnumerator : unit -> System.Collections.Generic.List<'T>.Enumerator
Public Function GetEnumerator () As List(Of T).Enumerator
Retouren
A List<T>.Enumerator voor de List<T>.
Opmerkingen
De instructie foreach van de C#-taal (For Each in Visual Basic) verbergt de complexiteit van de opsommingen. Daarom wordt het gebruik foreach aanbevolen in plaats van de opsomming rechtstreeks te bewerken.
Enumerators kunnen worden gebruikt om de gegevens in de verzameling te lezen, maar ze kunnen niet worden gebruikt om de onderliggende verzameling te wijzigen.
In eerste instantie wordt de enumerator vóór het eerste element in de verzameling weergegeven. Op deze positie is de Current eigenschap niet gedefinieerd. Daarom moet u de MoveNext methode aanroepen om de enumerator naar het eerste element van de verzameling te gaan voordat u de waarde van Current.
De Current eigenschap retourneert hetzelfde object totdat MoveNext deze wordt aangeroepen. MoveNext wordt ingesteld Current op het volgende element.
Als MoveNext het einde van de verzameling wordt doorgegeven, wordt de enumerator geplaatst na het laatste element in de verzameling en MoveNext wordt het resultaat geretourneerd false. Wanneer de enumerator zich op deze positie bevindt, worden volgende aanroepen ook MoveNext geretourneerd false. Als de laatste aanroep die moet MoveNext worden geretourneerd false, Current niet is gedefinieerd. U kunt niet opnieuw instellen Current op het eerste element van de verzameling. U moet in plaats daarvan een nieuw enumerator-exemplaar maken.
Een enumerator blijft geldig zolang de verzameling ongewijzigd blijft. Als er wijzigingen worden aangebracht in de verzameling, zoals het toevoegen, wijzigen of verwijderen van elementen, wordt de enumerator onherstelbaar ongeldig gemaakt en wordt de volgende aanroep naar MoveNext of IEnumerator.Reset genereert een InvalidOperationException.
De enumerator heeft geen exclusieve toegang tot de verzameling; Daarom is het inventariseren via een verzameling intrinsiek geen thread-veilige procedure. Om de veiligheid van threads tijdens de inventarisatie te garanderen, kunt u de verzameling vergrendelen tijdens de gehele inventarisatie. Als u wilt toestaan dat de verzameling toegankelijk is voor meerdere threads voor lezen en schrijven, moet u uw eigen synchronisatie implementeren.
Standaard implementaties van verzamelingen in de System.Collections.Generic naamruimte worden niet gesynchroniseerd.
Deze methode is een O(1)-bewerking.