Programování

Jak pracovat s n-ticí v C #

Tice nejsou nic nového - existují už nějakou dobu v programovacích jazycích jako F #, Python atd. A také v databázích. Tuple může být definována jako datová struktura, která se skládá z uspořádané, konečné posloupnosti neměnných, heterogenních prvků, které mají pevnou velikost. Prvky v n-tici jsou neměnné, tj. Vztahují se ke konkrétnímu typu. Můžete využít n-tice k vrácení více hodnot z metody a také k vytvoření složených kolekcí. Pro práci s n-ticemi v .Net můžete využít statické metody třídy System.Tuple.

Co je to Tuple?

Tuple je datová struktura, která se skládá z uspořádané, heterogenní kolekce prvků „n“ - prvky v n-tici mohou být buď stejného typu, nebo dokonce mohou být odlišných typů. V matematice může být n-tice definována jako posloupnost nebo jako uspořádaný seznam prvků „n“. Je třeba poznamenat, že „n“ zde označuje kladné celé číslo. Dále může existovat pouze jedna n-tice, tj. Prázdná sekvence.

Pořadí prvků v Tuple je definováno v době, kdy je Tuple vytvořen. Vlastnosti v řazené kolekci členů jsou všechny jen pro čtení, tj. Nelze je změnit, jakmile již byly vytvořeny. Velikost n-tice je pevná, protože ji nelze změnit, jakmile byla definována v době, kdy je n-tice vytvořena.

Proč bychom měli používat Tuples?

Možná budete chtít použít n-tici k reprezentaci sady heterogenních dat a poskytnout snadný způsob přístupu k těmto datům. Můžete také využít n-tici k vrácení více hodnot z metody nebo dokonce předat více hodnot metodě. Používám n-tici ke kombinování více hodnot (pokud navzájem nesouvisí) do jedné bez nutnosti použití vlastní třídy. Všimněte si, že ačkoli mají anonymní typy mnoho společného, ​​nemůžete anonymní typ z metody vrátit.

Jedním z hlavních omezení použití n-tic v tomto případě je, že nemůžete mít smysluplné názvy vlastností v n-tici - budou pojmenovány jako Item1, Item2, Item3 atd. Jak však váš kód, který používá Tuple, roste, stalo by se to nečitelným a obtížně udržovatelným v průběhu času. Je třeba také poznamenat, že Tuple je třída a ne struktura. Proto jsou instance Tuple vždy uloženy ve spravované haldě. To se pro vás může dokonce stát výzvou k výkonu, pokud instance Tuple mají velké velikosti a nejsou uvážlivě vyčištěny. Zde je zajímavé čtení na Tuple na MSDN.

Programování n-tic v C #

Chcete-li pracovat s n-ticemi v C #, musíte využít třídu n-tic. Třída Tuple má statickou povahu a skládá se ze statické metody Create, kterou lze použít k vytvoření instance n-tice. Mimochodem, statická metoda Create třídy Tuple obsahuje osm přetížení, která přijímají obecné argumenty. Tady je seznam přetížených Create metod této třídy.

Tuple. Vytvořit

Tuple. Vytvořit

Tuple. Vytvořit

Tuple. Vytvořit

Tuple. Vytvořit

Tuple. Vytvořit

Tuple. Vytvořit

Tuple. Vytvořit

Následující fragment kódu ukazuje, jak můžete vytvořit a inicializovat Tuple.

var listEmployee = nový seznam

{

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

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

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

};

Jakmile je vaše Tuple vytvořena a inicializována, můžete ji iterovat podobně, jako byste to udělali s kolekcí. Následující fragment kódu ukazuje, jak toho lze dosáhnout.

foreach (Tuple n-tice v listEmployee)

           {

Console.WriteLine (tuple.Item2);

           }

A tady je kompletní výpis kódu, který ukazuje, jak můžete vytvořit, inicializovat a poté iterovat Tuple v C #.

static void Main (řetězec [] args)

       {

var listEmployee = nový seznam

           {

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

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

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

           };

foreach (Tuple n-tice v listEmployee)

           {

Console.WriteLine (tuple.Item2);

           }

Console.Read ();

       }

Můžete také vytvořit vnořenou n-tici. Následující fragment kódu ukazuje, jak to můžete udělat.

var tuple = Tuple.Create (1, "Joydip Kanjilal", nový Tuple ("Hyderabad", "Indie"));