Programovanie

Ako pracovať s členitým poľom v C #

Pole možno definovať ako postupnú zbierku prvkov rovnakého dátového typu. Prvky poľa sú uložené na susedných pamäťových miestach. Polia môžu byť jednorazové alebo viacrozmerné. Zubaté pole je špeciálny typ viacrozmerného poľa, v ktorom každé z poľa (zubaté pole je v skutočnosti pole) môže mať rôznu veľkosť.

Členité polia môžete mať v ľubovoľnom počítačovom jazyku, ktorý ich poskytuje. Členité pole (tiež známe ako členité pole) je pole polí, v ktorých môžu mať členské polia rôzne rozmery a veľkosti. Môžete implementovať viacrozmerné polia so zubatými poľami na zlepšenie výkonu.

Začíname so zubatými poľami v C #

V tejto časti preskúmame, ako deklarovať, inicializovať a sprístupniť zubaté polia. Ako vieme, zubaté pole pozostáva z poľa polí podobnej alebo rozdielnej veľkosti. Inými slovami, v zubatom poli je počet riadkov pevný, ale počet stĺpcov sa môže líšiť. Pri deklarovaní zubatého poľa môžete iba deklarovať počet riadkov poľa a radšej určiť počet stĺpcov za behu.

Dajte nám vedieť, čo všetko sme sa doteraz naučili na zubatých poliach, s niekoľkými príkladmi kódu. Zvážte nasledujúce pole.

string [] [] str = nový reťazec [5] [];

Vyhlásili ste riadky poľa. V tomto poli je 5 riadkov, ktoré môžu obsahovať 5 radových polí rôznych dĺžok. Pozrime sa teraz, ako môžeme deklarovať 5 polí v poli s názvom str, každé s rôznou dĺžkou. Nasledujúci úryvok kódu ilustruje, ako je to možné dosiahnuť.

str [0] = nový reťazec [5];

str [1] = nový reťazec [10];

str [2] = nový reťazec [20];

str [3] = nový reťazec [50];

str [4] = nový reťazec [10];

Teraz môžete ukladať reťazce rôznej dĺžky do zubatého poľa, ako je to znázornené v útržku kódu nižšie.

str [0] [0] = "Pune";

str [1] [0] = "Kalkata";

str [2] [0] = "Bangalúr";

str [3] [0] = "Ružové mesto menom Jaipur";

str [4] [0] = "Hajdarábad";

Tu je kompletný zoznam kódov, ktorý ilustruje, ako môžete deklarovať zubaté pole, ukladať údaje a potom ich načítať a zobraziť v konzole.

public static void Main (reťazec [] args)

       {

// Najskôr deklarujte zubaté pole

string [] [] str = nový reťazec [5] [];

str [0] = nový reťazec [5];

str [1] = nový reťazec [10];

str [2] = nový reťazec [20];

str [3] = nový reťazec [50];

str [4] = nový reťazec [10];

// Teraz ukladajte údaje do zubatého poľa

str [0] [0] = "Pune";

str [1] [0] = "Kalkata";

str [2] [0] = "Bangalúr";

str [3] [0] = "Ružové mesto menom Jaipur";

str [4] [0] = "Hajdarábad";

// Nakoniec zobrazte obsah každého z polí reťazca vo vnútri zubatého poľa

pre (int i = 0; i <5; i ++)

Console.WriteLine (str [i] [0]);

Console.Read ();

       }

Ako vidíte vo vyššie uvedenom programe, počet riadkov zubatého poľa je pevný, ale počet stĺpcov sa líši. Tento príklad predstavuje dvojrozmerné zubaté pole. Ak by ste používali normálne dvojrozmerné pole, museli by ste spotrebovať 5 x 50, teda 250 bajtov. Dôvod je ten, že na umiestnenie najväčšieho reťazca by ste museli mať v každom z polí v zubatom poli priestor 50 bajtov. V tomto príklade má najväčší reťazec veľkosť 50. Naopak, pri použití zubatého poľa nakoniec skonzumujete iba 95 bajtov! Zaujimave, ze?

Keď spustíte vyššie uvedený program, reťazce uložené v zubatom poli sa zobrazia v okne konzoly.

Ďalší príklad - zubaté pole celých čísel

Podobne ako sme vytvorili zubaté pole reťazcov, môžete vytvoriť aj zubaté pole celých čísel. V skutočnosti môžete mať zubaté pole ľubovoľného dátového typu. Tu je príklad, ako môžete vyhlásiť zubaté pole v C #.

int [] [] numbersArray;

Nasledujúci úryvok kódu ilustruje, ako môžete vyhlásiť celé číslo zubaté pole, t. J. Zubaté pole, ktoré môže zase ukladať polia celých čísel rôznych prvkov.

int [] [] numbersArray = new int [5] [];

pre (int i = 0; i <numbersArray.Length; i ++)

   {

numbersArray [i] = new int [10 * (i + 1)];

   }

Vyššie uvedený úryvok kódu vytvára celočlenné zubaté pole s názvom numbersArray, ktoré obsahuje celočíselné polia rôznych veľkostí.