Laden...

Dictionary Keys durcharbeiten ohne foreach?

Erstellt von Seikilos vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.178 Views
S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 17 Jahren
Dictionary Keys durcharbeiten ohne foreach?

Ich sitz auf dem Schlauch, ich brauche vom Dictionary<> Objekt eine Iteration inklusive der Key zuweisungen, aber ohne foreach, weil ich meine for Schleife mit der Indexvariable noch brauche, doch kommt man irgendwie an die Keys so ran? Ich hab mir auch schon Dictionary.KeyCollection angeguckt, aber sa gehts auch nicht.
Sehe ich richtig, dass es nur zwei Wege gibt? Einmal foreach und eine externe Iteratorvariable für andere Aktionen oder andersrum, for(i... und das mit dem Enumerator Objekt des Dictionaries? Wobei ich denke dass die erste Variante besser ist, da foreach die Komplexität des Enumerators verdeckt

Life is a short

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Seikilos,

doch kommt man irgendwie an die Keys so ran?

Dictionary.Keys

herbivore

PS: Siehe vielleicht auch Hilfreiche Iteratoren / Improving Foreach

S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 17 Jahren

Wie im meinen Beitrag erwähnt hab,hab ich mir die KeyCollecton angeguckt, aber dort kann ich ja genausowenig mit KeyCollection[int index] durchgehen

Life is a short

T
512 Beiträge seit 2006
vor 17 Jahren

Du könntest höchstens die CopyTo Funktion benutzen, um die Informationen in ein Array zu kopieren. Aber foreach mit ner extra Zählvariable ist imo die bessere Variante.

e.f.q.

Aus Falschem folgt Beliebiges

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Seikilos,

wozu brauchst du den Index? Dictionaries sind ungeordnet.

herbivore

S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 17 Jahren

Naja eben, ich brauch ihn nicht primär dafür, aber an der Stelle wo ich das Dictionary durcharbeite, brauch ich auch einen Index für andere Operationen, jetzt ist der Index extern durch eine eigene Zählvariable.

Danke

Life is a short

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Seikilos,

solange du damit meinst, dass du wissen muss, bei welchem Schleifendurchlauf du gerade bist, ist es ok. Ein Index in das Dictionary wäre die Zählvariable jedoch nicht, denn wenn du das Dictionary änderst, können sich die "Indizes" beliebig verschieben.

herbivore

S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 17 Jahren

Ehm, spät, aber noch da.
Wenn ich die values eines Dictionarys durchsuche, kann ich irgendwie an den Key eines bestimmten Values kommen?

Life is a short

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Seikilos,

nö, entweder du gehst die Key durch, dann kommst du leicht an die Values oder du gehst die KeyValuePairs durch, da hast du gleich beides zusammen.

herbivore

S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 17 Jahren

Danke.

Noch eine frage, wenn ich mit Add KeyValue Pairs generiere, sind die Keys im Speicher geordnet?
Wenn ich die Keys ausgebe, sind diese dann nach der Reihenfolge, wie die geschrieben worden sind?

Life is a short

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Seikilos,

nein, die Einträge in einem Dictionary sind ungeordnet (das heißt, sie haben keine erkennbare Ordnung), aber wenn man ein Dictionary zweimal hintereinander durchläuft, dann bekommt man Keys, Values bzw. KeyValuePairs jeweils in der gleichen Reihenfolge. Ändert man etwas am Dictionary kann sich die Reihenfolge dadurch ändern.

herbivore

S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 17 Jahren

Verstehe, vielen dank

Life is a short