So arbeiten Sie mit einem Tupel in C #

Tupel sind nichts Neues - sie gibt es schon seit einiger Zeit in Programmiersprachen wie F #, Python usw. und auch in Datenbanken. Ein Tupel kann als eine Datenstruktur definiert werden, die aus einer geordneten, endlichen Folge unveränderlicher, heterogener Elemente fester Größe besteht. Elemente in einem Tupel sind unveränderlich, dh sie beziehen sich auf einen bestimmten Typ. Sie können Tupel nutzen, um mehrere Werte aus einer Methode zurückzugeben und zusammengesetzte Sammlungen zu erstellen. Sie können die statischen Methoden der System.Tuple-Klasse nutzen, um mit Tupeln in .Net zu arbeiten.

Was ist ein Tupel?

Tupel ist eine Datenstruktur, die aus einer geordneten, heterogenen Sammlung von „n“ Elementen besteht. Die Elemente in einem Tupel können entweder vom gleichen Typ oder sogar vom unterschiedlichen Typ sein. In der Mathematik kann ein n-Tupel als Folge oder als geordnete Liste von "n" Elementen definiert werden. Es ist zu beachten, dass "n" hier eine positive ganze Zahl bezeichnet. Ferner kann es nur ein 0-Tupel geben, dh eine leere Sequenz.

Die Reihenfolge der Elemente in einem Tupel wird zum Zeitpunkt der Erstellung des Tupels definiert. Die Eigenschaften in einem Tupel sind alle schreibgeschützt, dh sie können nicht geändert werden, sobald sie erstellt wurden. Die Größe des Tupels ist festgelegt, da es nicht mehr geändert werden kann, nachdem es zum Zeitpunkt der Erstellung des Tupels definiert wurde.

Warum sollten wir Tupel verwenden?

Möglicherweise möchten Sie ein Tupel verwenden, um eine Reihe heterogener Daten darzustellen und eine einfache Möglichkeit zum Zugriff auf diese Daten bereitzustellen. Sie können auch ein Tupel verwenden, um mehrere Werte von einer Methode zurückzugeben oder sogar mehrere Werte an eine Methode zu übergeben. Ich verwende ein Tupel, um mehrere Werte (wenn sie nicht miteinander zusammenhängen) zu einem zu kombinieren, ohne dass eine benutzerdefinierte Klasse verwendet werden muss. Beachten Sie, dass anonyme Typen zwar viele Gemeinsamkeiten aufweisen, Sie jedoch keinen anonymen Typ von einer Methode zurückgeben können.

Eine Hauptbeschränkung bei der Verwendung von Tupeln besteht in diesem Fall darin, dass Sie keine aussagekräftigen Namen der Eigenschaften in einem Tupel haben können - sie würden als Item1, Item2, Item3 usw. bezeichnet. Wenn Ihr Code, der Tuple verwendet, jedoch wächst, wird dies im Laufe der Zeit unlesbar und schwierig zu warten. Es sollte auch beachtet werden, dass Tuple eine Klasse und keine Struktur ist. Daher werden Instanzen von Tuple immer im verwalteten Heap gespeichert. Dies kann sogar zu einer Leistungsherausforderung für Sie werden, wenn Instanzen von Tuple groß sind und nicht mit Bedacht bereinigt werden. Hier ist eine interessante Lektüre über Tupel bei MSDN.

Programmieren von Tupeln in C #

Um mit Tupeln in C # arbeiten zu können, müssen Sie die Tupelklasse nutzen. Die Tuple-Klasse ist statischer Natur und enthält die statische Create-Methode, mit der eine Tupelinstanz erstellt werden kann. Im Übrigen enthält die statische Create-Methode der Tuple-Klasse acht Überladungen, die generische Argumente akzeptieren. Hier ist die Liste der überladenen Create-Methoden dieser Klasse.

Tuple.Create

Tuple.Create

Tuple.Create

Tuple.Create

Tuple.Create

Tuple.Create

Tuple.Create

Tuple.Create

Das folgende Codefragment zeigt, wie Sie ein Tupel erstellen und initialisieren können.

var listEmployee = new List

{

                Tuple.Create(1, "Joydip Kanjilal", "INDIA"),

                Tuple.Create(2, "Michael Stevens", "USA" ),

                Tuple.Create(3, "Steve Barnes", "USA" )

};

Sobald Ihr Tupel erstellt und initialisiert wurde, können Sie es ähnlich wie bei einer Sammlung wiederholen. Das folgende Codefragment zeigt, wie dies erreicht werden kann.

foreach(Tuple tuple in listEmployee)

           {

               Console.WriteLine(tuple.Item2);

           }

Und hier ist die vollständige Codeliste, die zeigt, wie Sie ein Tupel in C # erstellen, initialisieren und dann iterieren können.

static void Main(string[] args)

       {

           var listEmployee = new List

           {

               Tuple.Create(1, "Joydip Kanjilal", "INDIA"),

               Tuple.Create(2, "Michael Stevens", "USA" ),

               Tuple.Create(3, "Steve Barnes", "USA" )

           };

           foreach(Tuple tuple in listEmployee)

           {

               Console.WriteLine(tuple.Item2);

           }

           Console.Read();

       }

Sie können auch ein verschachteltes Tupel erstellen. Das folgende Codefragment zeigt, wie Sie dies tun können.

var tuple = Tuple.Create(1,"Joydip Kanjilal",new Tuple("Hyderabad","India"));