Hi

Welcher Key gehört zu einem gegebenen Value?
Das würde ja eigentlich auch keinen Sinn ergeben. Denn es können ja zwei unterschiedliche Keys den gleichen Value haben.

Nehmen wir mal dein Beispiel:
Hier haben wir die Paare
Peter = Gelb
Franz = Rot
Georg = Grün
Lutz = Gelb

Welchen Wert sollte er denn dann liefern mit einer Methode Dictionary.KeyOfValue("Gelb")

Eine Methode Dictionary.IndexOfKey könnte man sich ja noch selber erstellen, denn einen Key gibt es nur einmal in einem Dictionary.

LG
Rossi


Am 29.07.2011 11:54, schrieb Christian Hahn:
Lieber Stefan,
ich hatte hier in der Liste einen längeren Erklärungstext zu Dictionaries eingestellt, aber der Text ist gerade über die zulässigen 20k hinaus, sodass der Text erst vom Admin freigegeben werden müsste. Der ist aber offenbar im Urlaub.
Wenn du möchtest, kann ich dir den Text aber privat zuschicken.

Für den Moment:
Beim Dictionary hast du immer das Tripel: Index -> Key -> Value
Man kann aber das Dictionary immer nur von links nach rechts abfragen.
Man kann von einem gegebenen Index auf einen Key schließen.
Man kann von einem gegebenen Key auf einen Value schließen.
Man kann fragen:
Gib mir den Value zu einem gegebenen Key! Variable = Dictionray.Value("Peter") (="gelb") Gib mir den Key zu einem gegebenen Index! Variable = Dictionray.Key(1) (="Peter")
Man kann nicht fragen:
Welcher Key gehört zu einem gegebenen Value?
Welcher Index gehört zu einem gegebenen Key?

Soweit ich sehe, ist für die umgekehrte Richtung die einzige Möglichkeit,
die Funktionen Dictionary.Values und Dictionaray.Keys zu nutzen.
Beide Funktionen geben jeweils ein Array zurück,
in Dictionary.Values stehen alle Values in ihrer Reihenfolge,
woraus man den zugehörigen Index schließen kann,
in Dictionary.Keys stehen alle Keys in ihrer Reihenfolge,
woraus man ebenso den zugehörigen Index schließen kann.
Aber dann könnte man ja gleich nur mit Arrays arbeiten
und kann die Vorteile des Dictionary nicht ausnutzen.

Da wäre dann noch die Lösung, gleich zwei oder mehr Dictionaries anzulegen,
je nach dem, welche Abfragen man braucht:
                   Index Key   Value
DictionaryA: 1        Peter gelb
DictionaryB: 1        gelb   Peter
DictionaryC: 1        Peter  1
DictionaryD: 1        gelb    1

soweit beste Grüße, Christian Hahn.










Antwort per Email an