Programmering

Sådan arbejder du med en Tuple i C #

Tuples er ikke noget nyt - de har eksisteret i nogen tid nu i programmeringssprog som F #, Python osv. Og også i databaser. En tuple kan defineres som en datastruktur, der består af en ordnet, endelig sekvens af uforanderlige, heterogene elementer, der har faste størrelser. Elementer i en Tuple er uforanderlige, dvs. de vedrører en bestemt type. Du kan drage fordel af tupler til at returnere flere værdier fra en metode og også oprette sammensatte samlinger. Du kan udnytte de statiske metoder i System.Tuple-klassen til at arbejde med tupler i .Net.

Hvad er en Tuple?

Tuple er en datastruktur, der består af en ordnet, heterogen samling af "n" -elementer - elementerne i en tuple kan enten være af samme type eller endda være af forskellige typer. I matematik defineres en n-tuple måske som en sekvens eller som en ordnet liste over "n" -elementer. Det skal bemærkes, at "n" her betegner et positivt heltal. Derudover kan der kun være en 0-tuple, dvs. en tom sekvens.

Rækkefølgen af ​​elementerne i en tuple defineres på det tidspunkt, hvor tuplen oprettes. Egenskaberne i en Tuple er alle skrivebeskyttede, dvs. de kan ikke ændres, når de først er oprettet. Størrelsen på Tuple er fast, da den ikke kan ændres, når den først er defineret på det tidspunkt, hvor Tuple oprettes.

Hvorfor skal vi bruge Tuples?

Det kan være en god idé at bruge en tuple til at repræsentere et sæt heterogene data og give en nem måde at få adgang til disse data på. Du kan også drage fordel af en tuple til at returnere flere værdier fra en metode eller endda videregive flere værdier til en metode. Jeg bruger en tuple til at kombinere flere værdier (hvis de ikke er relateret til hinanden) i en sans behovet for at skulle bruge en brugerdefineret klasse. Bemærk, at selvom anonyme typer har mange ting til fælles, kan du ikke returnere en anonym type fra en metode.

En vigtig begrænsning ved at bruge tupler i dette tilfælde er, at du ikke kan have meningsfulde navne på egenskaberne i en Tuple - de vil blive navngivet som Item1, Item2, Item3 osv. Da din kode, der bruger Tuple, vokser, bliver dette imidlertid ulæseligt og vanskeligt at vedligeholde over tid. Det skal også bemærkes, at Tuple er en klasse og ikke en struktur. Derfor gemmes forekomster af Tuple altid i den administrerede bunke. Dette kan endda blive en ydeevneudfordring for dig, hvis forekomster af Tuple er store i størrelser, og de ikke bliver ryddet op med omtanke. Her er en interessant læsning om Tuple på MSDN.

Programmering af tuples i C #

For at arbejde med tupler i C # skal du udnytte Tuple-klassen. Tuple-klassen er statisk og består af den statiske Create-metode, der kan bruges til at oprette en tuple-forekomst. I øvrigt indeholder den statiske Create-metode i Tuple-klassen otte overbelastninger, der accepterer generiske argumenter. Her er listen over de overbelastede Opret metoder i denne klasse.

Tuple Opret

Tuple Opret

Tuple Opret

Tuple Opret

Tuple Opret

Tuple Opret

Tuple Opret

Tuple Opret

Følgende kodestykke viser, hvordan du kan oprette og initialisere en Tuple.

var listEmployee = ny liste

{

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

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

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

};

Når din Tuple er oprettet og initialiseret, kan du gentage det på samme måde som med en samling. Følgende kodestykke viser, hvordan dette kan opnås.

foreach (Tuple tuple i listeMedarbejder)

           {

Console.WriteLine (tuple.Item2);

           }

Og her er den komplette kodeliste, der illustrerer, hvordan du kan oprette, initialisere og derefter gentage en Tuple i C #.

statisk ugyldigt Main (streng [] args)

       {

var listEmployee = ny liste

           {

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

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

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

           };

foreach (Tuple tuple i listeMedarbejder)

           {

Console.WriteLine (tuple.Item2);

           }

Console.Read ();

       }

Du kan også oprette en indlejret tuple. Følgende kodestykke illustrerer, hvordan du kan gøre dette.

var tuple = Tuple.Create (1, "Joydip Kanjilal", ny Tuple ("Hyderabad", "Indien"));