Erstellen Sie einen eigenen Liststring, String, String

8

Können wir in C # .NET unsere eigene List<string, string, string> erstellen? Ich muss eine Liste mit 3 verschiedenen Strings als ein einzelnes Element in der Liste erstellen.

    
HotTester 15.05.2012, 09:16
quelle

11 Antworten

27

Sie können sicherlich Ihre eigene Klasse namens List mit drei generischen Typparametern erstellen. Ich würde Sie jedoch davon abhalten, dies zu tun. Es würde jeden, der deinen Code benutzt, durcheinander bringen.

Stattdessen entweder verwenden Sie List<Tuple<string, string, string>> (wenn Sie sowieso .NET 4 verwenden) oder (am besten) erstellen Sie Ihre eigene Klasse, um diese drei Strings sinnvoll zu kapseln, dann verwenden Sie List<YourNewClass> .

Wenn Sie Ihre eigene Klasse erstellen, wird das beim Schreiben und Lesen des Codes viel klarer. Wenn Sie den drei verschiedenen Strings Namen geben, weiß jeder, was sie bedeuten sollen. Sie können der Klasse bei Bedarf auch mehr Verhalten geben.

    
Jon Skeet 15.05.2012, 09:18
quelle
10

Sie können ein Tuple verwenden, um das zu erreichen.

Zum Beispiel:

%Vor%

um über die Werte, die Sie möchten, zu gehen, um ein einfaches zu tun:

%Vor%

oder finden Sie ein bestimmtes Tüppel, Sie möchten vielleicht Folgendes tun:

%Vor%

Dies wird das letzte Tupel zurückgeben.

    
Tigran 15.05.2012 09:19
quelle
4

Ich empfehle diese Lösung

%Vor%     
Vivek 15.05.2012 09:42
quelle
3

Vielleicht in etwa so:

%Vor%     
Arion 15.05.2012 09:19
quelle
2

Sie können eine Liste von Tupeln verwenden. Wie so:

%Vor%     
Amy 15.05.2012 09:18
quelle
2

Zum Beispiel:

%Vor%

Weitere Informationen finden Sie in MSDN .

    
Smit 15.05.2012 09:33
quelle
1

Wie wäre es mit einem List<Tuple<string, string, string>> ?

Eine bessere Idee könnte es jedoch sein, wenn jede der Strings eine bestimmte Bedeutung hat, sie alle in eine Klasse einzuordnen und dann eine Liste davon zu erstellen.

    
Botz3000 15.05.2012 09:19
quelle
0

Nein, leider funktioniert das nicht. Das Beste, was Sie tun können, ist, eine Liste von Listen zu erstellen oder eine Form der Implementierung der IDictionary-Schnittstelle zu verwenden.

Wenn Sie jedoch drei Datenelemente haben, die auf diese Weise zusammengehören, ist es wahrscheinlich sinnvoll, eine Klasse zu erstellen, um sie zu enthalten.

Das würde Ihnen dann die Möglichkeit geben, eine Liste um Ihre Anwendung zu übergeben und jedem Datenelement aussagekräftige Namen zuzuweisen. Unterschätze niemals die Lesbarkeit in sechs Monaten.

    
inksmithy 15.05.2012 09:23
quelle
0

Sie können eine Liste definieren und die benötigten Schnittstellen implementieren (z. B. IList). Codes blasen.

%Vor%

List<Tuple<string,string,string>> wird jedoch empfohlen.

    
Allen Xia 15.05.2012 09:31
quelle
0
%Vor%     
Vivek 15.05.2012 09:33
quelle
0

Jeder hat dynamic versucht?

%Vor%     
Sharon 28.07.2016 07:22
quelle

Tags und Links