5 Stimmen

Wie speichert man ein Paar von Strings in einer nicht eindeutigen Liste?

Ich habe eine Situation, wo ich einige Konfigurationsdaten aus einem XML-Dokument laden und ich habe eine Reihe von Elementen, die Paare von Zeichenfolgen enthalten. Ich bin tryign für einen guten Weg, um diese in einem einzigen Objekt zu speichern suchen.

Ich suche etwas wie Dictionary<string,string> mit der Ausnahme, dass ich in der Lage sein möchte, doppelte Schlüssel zu haben, und ich werde nie nach einem einzelnen Wert suchen, sondern ihn nur durchlaufen, um etwas HTML zu generieren, das auf eine Seite gestellt wird.

Gibt es ein gutes Objekt, das man verwenden kann? Ich weiß, ich könnte eine kleine Klasse von meinem eigenen, um die zwei Bits von Daten zu halten und haben eine Liste von ihnen, aber das scheint ein bisschen übertrieben.

Ich könnte auch einfach zwei Listen haben und nur wissen, dass das n-te Element in der einen mit dem n-ten Element in der anderen zusammenpasst. Dies scheint mir wie ein Rezept für eine Katastrophe von einer Art aber.

Es gibt auch System.Web.UI.Pair, die zu tun scheint, was ich will, aber ich bin nicht sicher, wenn seine gute Praxis zu verwenden, die im System.Web.UI-Namensraum gegeben ist...

Wahrscheinlich übersehe ich etwas Offensichtliches, aber ich dachte, ich frage lieber, als noch mehr Zeit damit zu verbringen, darüber nachzudenken, wie man das am besten macht :)

11voto

Daniel Hilgarth Punkte 165768

Sie können einfach eine List<KeyValuePair<string, string>> oder eine List<Tuple<string, string>> .

Sie würden Elemente wie diese hinzufügen:

// for List<KeyValuePair<string, string>>
list.Add(new KeyValuePair<string, string>(value1, value2));

// for List<Tuple<string, string>>
list.Add(Tuple.Create(value1, value2));

Sie können auf die Elemente wie folgt zugreifen:

foreach(var item in list)
{
    // for List<KeyValuePair<string, string>>
    var value1 = item.Key;
    var value2 = item.Value;

    // for List<Tuple<string, string>>
    var value1 = item.Item1;
    var value2 = item.Item2;
}

7voto

Ignacio Soler Garcia Punkte 20595

Ich persönlich würde eine eigene kleine Klasse erstellen, um die beiden Datenbits zu speichern und eine Liste von ihnen zu haben.

Wahrscheinlich werden Sie dort früher oder später etwas Logik hinzufügen.

0voto

Alex Broitman Punkte 107

Ich würde vorschlagen, Folgendes zu verwenden NameValueCollection Klasse.

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