13 Stimmen

C# Wörterbuch, 2 Werte

Was wäre die beste C#-Datenstruktur für die Verwendung eines Schlüssels, und zwei Werte herausgezogen werden?

Im Wesentlichen brauche ich eine Dictionary<string, string, string> . Gibt es etwas in dieser Art?

21voto

Jon Skeet Punkte 1325502

Wenn Sie .NET 4 verwenden, können Sie

Dictionary<string, Tuple<string, string>>

Wenn Sie das nicht sind, können Sie Ihre eigene Tuple Typ, der auf die gleiche Weise funktioniert :)

Wenn Sie dies nur an einer Stelle benötigen, können Sie alternativ auch einen eigenen Typ erstellen, der die beiden Zeichenfolgen unter Verwendung geeigneter Namen sauber kapselt. Zum Beispiel:

public sealed class NameAndAddress
{
    private readonly string name;
    public string Name { get { return name; } }

    private readonly string address;
    public string Address { get { return address; } }

    public NameAndAddress(string name, string address)
    {
        this.name = name;
        this.address = address;
    }
}

Dann können Sie verwenden:

Dictionary<string, NameAndAddress>

die sehr deutlich macht, was gespeichert wird.

Sie könnten Gleichheit usw. einführen, wenn Sie wollten. Ich persönlich würde es begrüßen, wenn diese Art von Dingen einfacher gemacht würde - anonyme Typen fast es tun, aber dann kann man sie nicht benennen...

6voto

Danvil Punkte 21198
class A {
  public string X, Y;
}

Dictionary<string, A> data;

3voto

Oskar Kjellin Punkte 20322

Erstellen Sie eine Struktur mit Ihren Werten und verwenden Sie dann

Dictionary<string, MyStruct> dict = new Dictionary<string, MyStruct>();

0voto

digEmAll Punkte 54672

Sie können ein Wörterbuch mit KeyValuePairs verwenden

Dictionary<string,KeyValuePair<string,string>>

0voto

IVlad Punkte 42204

Ja, es gibt genau das . Sie können Ihre beiden Werte in einer Klasse oder einer Struktur speichern. Oder wollen Sie etwas anderes?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X