Haben wir eine Art Triple-Sammlung in C #?

8

Ich dachte daran, drei Informationen für jedes Objekt einer Liste zu behalten. Ich kann also eine Klasse mit drei Eigenschaften für diese drei Informationen erstellen und dann eine Sammlung dieses Klassentyps erstellen ... Aber ich habe mich gefragt, ob .NET 3.5 (und nicht 4.0) etwas dafür eingebaut hat? zum Beispiel ein Wörterbuch ... das man zwei Stücke von Informationen für jeden Gegenstand, Schlüssel und Wert behält ... aber ich brauche drei. Haben wir dafür etwas eingebaut?

    
Bohn 18.08.2012, 23:58
quelle

5 Antworten

14

Sie können Ihre eigene Tuple<T1, T2, T3> erstellen:

%Vor%     
Omar Mahili 19.08.2012, 00:10
quelle
11

Erstellen Sie Ihre eigene Triple-Klasse:

%Vor%

Es ist klar und überschaubarer als Methoden wie: Dictionary<Key, KeyValuePair<X,Y>> und andere Ansätze wie diese.

    
Saeed Amiri 19.08.2012 00:03
quelle
3

Die Lösung zum Erstellen einer generischen Tuple-Klasse ähnlich der, die in .Net 4 hinzugefügt wird, wird in anderen Antworten erklärt, aber ich denke, es ist wichtig zu sagen, dass es besser wäre, eine kleine Klasse zu erstellen, um die Daten semantisch darzustellen Sie speichern mit sinnvollen Eigenschaften. Ein generisches 3-Tupel könnte jetzt funktionieren, aber Sie könnten später die Funktionalität erweitern.

    
jwrush 19.08.2012 00:07
quelle
2

Wenn Sie .NET 4 verwenden, suchen Sie nach Tuple<T1,T2,T3> . .NET 3.5 hat keinen integrierten Typ, aber abhängig von Ihren Anforderungen können Sie Dictionary<T1,Dictionary<T2,Dictionary<T3,bool>>>

ausführen     
saluce 18.08.2012 23:59
quelle
1

Probieren Sie Dictionary<Key, Tuple<Object, Object>> oder alternativ Dictionary<Key, YourClass> aus, wobei YourClass (was natürlich eine Struktur sein könnte) die zwei erforderlichen Daten enthält.

    
CesarGon 19.08.2012 00:01
quelle

Tags und Links