Ich kratze mich über das folgende Problem. Ich möchte ein Wörterbuch erstellen, das mehrere Schlüssel verwendet. Ich kam zu den Lösungen, die Tupel als Methode der Wahl vorschlagen. Ich denke, das ist ein guter Weg. Jedoch hat mein Problem die folgende Spezialität. Ich möchte die Schlüssel "permutabel" machen (Sorry, wenn ich hier den falschen Slang benutze). Was ich damit meine, ist folgendes. Ich möchte, dass das Ergebnis dict[<key1,key2>
dasselbe ist wie mit dict[<key2,<key1>]
, weil die Daten, die ich speichern möchte, in der Reihenfolge der Schlüssel invariant sind.C# - Tupel oder andere multikey Variante für Dictionary, aber mit Permutabilität
Als Beispiel siehe den folgenden Code, der im Moment natürlich nicht das erhoffte Ergebnis liefert. Ich möchte, dass das Ergebnis mit dem permutierten Schlüssel dem Schlüssel-Tupel entspricht.
Tuple<string, string> key = new Tuple<string, string>("Name1", "Name2");
Dictionary<Tuple<string,string>, double> dict = new Dictionary<Tuple<string, string>, double>();
dict.Add(key, 5.0);
Console.WriteLine(dict[key]);
Tuple<string, string> permutedKey = new Tuple<string, string>("Name2", "Name1");
Console.WriteLine(dict[permutedKey]);
Der Grund für all dies, ich habe Daten zu speichern, die mit zwei Schlüsseln indiziert werden muss, ist aber im Grunde immer symetrisch. Es besteht also keine Notwendigkeit, es zweimal zu speichern.
Vielen Dank. Ich bin ernsthaft beeindruckt, wie schnell du mir helfen kannst. Leider habe ich nicht den Ruf, deine Antwort zu verbessern. Aber vielen Dank trotzdem. Es funktioniert einwandfrei. – Johannes
@Johannes du bist willkommen, wenn diese Antwort dir hilft, bitte bedenke es als akzeptiert, danke;) –