Dictionary<TKey,TValue>.Enumerator Struct-datatyp
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Räknar upp elementen i en 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))
Typparametrar
- TKey
- TValue
- Arv
- Attribut
- Implementeringar
Kommentarer
foreach-instruktionen för C#-språket (For Each i Visual Basic) döljer komplexiteten hos uppräknare. Därför rekommenderas användning foreach i stället för att direkt manipulera uppräknaren.
Uppräknare kan användas för att läsa data i samlingen, men de kan inte användas för att ändra den underliggande samlingen.
Inledningsvis placeras uppräknaren före det första elementet i samlingen. I det här läget Current är det odefinierat. Du måste anropa MoveNext för att flytta uppräknaren till det första elementet i samlingen innan du läser värdet Currentför .
Current returnerar samma objekt tills det anropas MoveNext . MoveNext anger Current till nästa element.
Om MoveNext skickar slutet av samlingen placeras uppräknaren efter det sista elementet i samlingen och MoveNext returnerar false. När uppräknaren befinner sig på den här positionen returnerar falseefterföljande anrop MoveNext även . Om det sista anropet som MoveNext returnerades Currentfalseär odefinierat. Du kan inte ange Current det första elementet i samlingen igen. Du måste skapa en ny uppräkningsinstans i stället.
En uppräkning förblir giltig så länge samlingen förblir oförändrad. Om ändringar görs i samlingen, till exempel att lägga till element eller ändra kapaciteten, ogiltigförklaras uppräknaren oåterkalleligen och nästa anrop till MoveNext eller IEnumerator.Reset genererar en InvalidOperationException.
endast .NET Core 3.0+ : De enda muterande metoderna som inte ogiltigförklarar uppräknare är Remove och Clear.
Uppräknaren har inte exklusiv åtkomst till samlingen. Därför är uppräkning genom en samling i sig inte en trådsäker procedur. För att garantera trådsäkerheten under uppräkningen kan du låsa samlingen under hela uppräkningen. Om du vill att samlingen ska kunna nås av flera trådar för läsning och skrivning måste du implementera din egen synkronisering.
Standardimplementeringar av samlingar i System.Collections.Generic synkroniseras inte.
Egenskaper
| Name | Description |
|---|---|
| Current |
Hämtar elementet på den aktuella positionen för uppräknaren. |
Metoder
| Name | Description |
|---|---|
| Dispose() |
Släpper alla resurser som används av Dictionary<TKey,TValue>.Enumerator. |
| MoveNext() |
Avancerar uppräknaren till nästa element i Dictionary<TKey,TValue>. |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| IDictionaryEnumerator.Entry |
Hämtar elementet på den aktuella positionen för uppräknaren. |
| IDictionaryEnumerator.Key |
Hämtar nyckeln för elementet vid den aktuella positionen för uppräknaren. |
| IDictionaryEnumerator.Value |
Hämtar värdet för elementet vid den aktuella positionen för uppräknaren. |
| IEnumerator.Current |
Hämtar elementet på den aktuella positionen för uppräknaren. |
| IEnumerator.Reset() |
Anger uppräknaren till sin ursprungliga position, som är före det första elementet i samlingen. |