Dictionary<TKey,TValue>.Enumerator Struct
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.
Opsomming van de elementen van een Dictionary<TKey,TValue>.
public: value class Dictionary<TKey, TValue>::Enumerator : System::Collections::Generic::IEnumerator<System::Collections::Generic::KeyValuePair<TKey, TValue>>, System::Collections::IDictionaryEnumerator
public struct Dictionary<TKey,TValue>.Enumerator : System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.IDictionaryEnumerator
[System.Serializable]
public struct Dictionary<TKey,TValue>.Enumerator : System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.IDictionaryEnumerator
type Dictionary<'Key, 'Value>.Enumerator = struct
interface IEnumerator<KeyValuePair<'Key, 'Value>>
interface IEnumerator
interface IDisposable
interface IDictionaryEnumerator
[<System.Serializable>]
type Dictionary<'Key, 'Value>.Enumerator = struct
interface IEnumerator<KeyValuePair<'Key, 'Value>>
interface IDisposable
interface IDictionaryEnumerator
interface IEnumerator
[<System.Serializable>]
type Dictionary<'Key, 'Value>.Enumerator = struct
interface IEnumerator<KeyValuePair<'Key, 'Value>>
interface IDisposable
interface IEnumerator
interface IDictionaryEnumerator
type Dictionary<'Key, 'Value>.Enumerator = struct
interface IEnumerator<KeyValuePair<'Key, 'Value>>
interface IDictionaryEnumerator
interface IEnumerator
interface IDisposable
Public Structure Dictionary(Of TKey, TValue).Enumerator
Implements IDictionaryEnumerator, IEnumerator(Of KeyValuePair(Of TKey, TValue))
Type parameters
- TKey
- TValue
- Overname
- Kenmerken
- Implementeringen
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 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 Current is niet gedefinieerd. U moet de opsomming doorschakelen MoveNext naar het eerste element van de verzameling voordat u de waarde leest Current.
Current retourneert hetzelfde object totdat MoveNext het 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 van elementen of het wijzigen van de capaciteit, wordt de enumerator onherstelbaar ongeldig gemaakt en wordt de volgende aanroep naar MoveNext of IEnumerator.Reset genereert een InvalidOperationException.
.NET Core 3.0+ alleen: de enige mutatiemethoden die geen opsommingsmethoden ongeldig maken, zijn Remove en Clear.
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 System.Collections.Generic worden niet gesynchroniseerd.
Eigenschappen
| Name | Description |
|---|---|
| Current |
Hiermee haalt u het element op de huidige positie van de enumerator op. |
Methoden
| Name | Description |
|---|---|
| Dispose() |
Alle resources die worden gebruikt door de Dictionary<TKey,TValue>.Enumerator. |
| MoveNext() |
Hiermee wordt de enumerator naar het volgende element van de Dictionary<TKey,TValue>. |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| IDictionaryEnumerator.Entry |
Hiermee haalt u het element op de huidige positie van de enumerator op. |
| IDictionaryEnumerator.Key |
Hiermee haalt u de sleutel van het element op de huidige positie van de enumerator op. |
| IDictionaryEnumerator.Value |
Hiermee haalt u de waarde van het element op de huidige positie van de enumerator op. |
| IEnumerator.Current |
Hiermee haalt u het element op de huidige positie van de enumerator op. |
| IEnumerator.Reset() |
Hiermee stelt u de enumerator in op de oorspronkelijke positie, die vóór het eerste element in de verzameling valt. |