Liste Tupel mehr als 8 Elemente
Kann mir jemand helfen die folgende Liste Tupel mehr als 8 Elemente funktioniert nicht:
List<Tuple<int, string, double, string, int, string, double, Tuple<int, string>>> tpl = new
List<Tuple<int, string, double, string, int, string, double, Tuple<int, string>>>();
tpl.Add(Tuple.Create(1, "ABC", 100.123, "XYZ", 1, "ABC", 100.123, new Tuple<int, string>(100, "My Rest Item")));
foreach(var k in tpl)
listBox1.Items.Add(k.Item1.ToString() + " ---> " + k.Item2.ToString() + " ---> " + k.Item3.ToString() + " ---> " +
k.Item4.ToString() + " ---> " + k.Item5.ToString() + " ---> " + k.Item6.ToString() + " ---> " +
k.Item7.ToString() + " ---> " + k.Rest.Item1.ToString());
Gibt es folgenden Fehler
Fehler 1 Die beste übereinstimmung für die überladene Methode
'System.Collections.Generic.List<System.Tuple<int,string,double,string,int,string,double,System.Tuple<int,string>>>.Add(System.Tuple<int,string,double,string,int,string,double,System.Tuple<int,string>>)
'
hat einige ungültige Argumente C:\Users\Hewlett
Packard\AppData\Local\Temporary
Projects\WindowsFormsApplication1\Form1.cs 68 17 WindowsFormsApplication1
und Fehler 2 Argument 1: cannot convert from
'System.Tuple<int,string,double,string,int,string,double,System.Tuple<System.Tuple<int,string>>>
'
zu
'System.Tuple<int,string,double,string,int,string,double,System.Tuple<int,string>>
' C:\Users\Hewlett
Packard\AppData\Local\Temporary
Projects\WindowsFormsApplication1\Form1.cs 68 25 WindowsFormsApplication1
- Abgesehen von allem anderen - tun Sie das nicht! Erstellen Sie Ihre eigenen benannten Typ mit den relevanten Eigenschaften etc.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist mit dem letzten argument zu
- Tupel.Erstellen
. Schauen Sie genau auf, wie das argument, Rückgabewert definiert ist:Grundsätzlich, dass wraps
T8
imTuple<T8>
automatisch - und etwas unhelpfully.Können Sie
new
statt:Das ist ziemlich grauenvoll, obwohl. Es könnte besser sein, um einige statische Methoden, die von sich aus, z.B.
(mit wie vielen überlastungen, wie Sie benötigen)
oder möglicherweise eine Erweiterung der Methode auf
Tuple<T1 ... T7>
:Dann könnten Sie verwenden:
Würde ich persönlich versuchen zu vermeiden, dass diese Größe der Tupel vollständig, obwohl - erstellen Sie einen benannten Typ mit den entsprechenden Eigenschaften, statt.
Ich nicht wirklich verstehen, warum mich, aber der code wird funktionieren, wenn Sie
new Tuple<>
stattTuple.Create
:In C#7
ValueTuple
und nicht einTuple
.