Dies ist eine alte Frage, aber ich dachte, ich würde in meinem C# 6 Antwort setzen. Ich muss oft Testdaten einrichten, die leicht als Liste von Tupeln in den Code eingegeben werden können. Mit ein paar Erweiterungsfunktionen ist es möglich, dieses schöne, kompakte Format zu haben, ohne die Namen bei jedem Eintrag zu wiederholen.
var people= new List<Tuple<int, int, string>>() {
{1, 11, "Adam"},
{2, 22, "Bill"},
{3, 33, "Carol"}
}.Select(t => new { Id = t.Item1, Age = t.Item2, Name = t.Item3 });
Dies gibt eine IEnumerable - wenn Sie eine Liste, die Sie hinzufügen können, dann fügen Sie einfach ToList() wollen.
Die Magie kommt von der benutzerdefinierten Erweiterung Add-Methoden für Tupel, wie beschrieben unter https://stackoverflow.com/a/27455822/4536527 .
public static class TupleListExtensions {
public static void Add<T1, T2>(this IList<Tuple<T1, T2>> list,
T1 item1, T2 item2) {
list.Add(Tuple.Create(item1, item2));
}
public static void Add<T1, T2, T3>(this IList<Tuple<T1, T2, T3>> list,
T1 item1, T2 item2, T3 item3) {
list.Add(Tuple.Create(item1, item2, item3));
}
// and so on...
}
Das Einzige, was mir nicht gefällt, ist, dass die Typen von den Namen getrennt sind, aber wenn Sie wirklich keine neue Klasse erstellen wollen, können Sie mit diesem Ansatz trotzdem lesbare Daten erhalten.