HashSet<T>.GetEnumerator Methode

Definitie

Retourneert een enumerator die door een HashSet<T> object wordt herhaald.

public:
 System::Collections::Generic::HashSet<T>::Enumerator GetEnumerator();
public System.Collections.Generic.HashSet<T>.Enumerator GetEnumerator();
member this.GetEnumerator : unit -> System.Collections.Generic.HashSet<'T>.Enumerator
Public Function GetEnumerator () As HashSet(Of T).Enumerator

Retouren

Een HashSet<T>.Enumerator object voor het HashSet<T> object.

Opmerkingen

De instructie foreach van de C#-taal (For Each in Visual Basic) verbergt de complexiteit van opsommingen. Daarom wordt het gebruik foreach aanbevolen in plaats van de enumerator 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-object 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.

Van toepassing op