Programmering

Sådan arbejder du med takkede arrays i C #

Et array kan defineres som en sekventiel samling af elementer af samme datatype. Elementerne i en matrix er lagret i sammenhængende hukommelsesplaceringer. Arrays kan være enkelt- eller flerdimensionelle. Et tagget array er en speciel type af et flerdimensionelt array, hvor hver af arrayet (et takket array faktisk er et array af arrays) kan have varierende størrelse.

Du kan have takkede arrays på ethvert computersprog, der understøtter arrays. Et tagget array (også kendt som et ragged array) er et array af arrays, hvor medlemsarrays igen kan have forskellige dimensioner og størrelser. Du kan implementere flerdimensionelle arrays er takkede arrays for at forbedre ydeevnen.

Kom godt i gang med takkede arrays i C #

I dette afsnit vil vi undersøge, hvordan man deklarerer, initialiserer og får adgang til takkede arrays. Som vi ved, består en takket række af en række arrays af ens eller forskellige størrelser. Med andre ord, i et takket matrix er antallet af rækker fast, men antallet af kolonner kan variere. Når du erklærer et takket array, kan du bare erklære antallet af rækker i arrayet og foretrækker at angive antallet af kolonner ved kørsel.

Lad os vide at forstå alt det, vi hidtil har lært om skæve arrays med et par kodeeksempler. Overvej følgende array.

streng [] [] str = ny streng [5] [];

Du har erklæret matrixens rækker. Der er 5 rækker i denne matrix, der igen kan indeholde 5 strengarrays af forskellige længder. Lad os nu se, hvordan vi kan erklære 5 arrays i arrayet med navnet str, hver med forskellige længder. Følgende kodestykke illustrerer, hvordan dette kan opnås.

str [0] = ny streng [5];

str [1] = ny streng [10];

str [2] = ny streng [20];

str [3] = ny streng [50];

str [4] = ny streng [10];

Du kan nu gemme strenge af forskellige længder i det takkede array som vist i kodestykket nedenfor.

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

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

str [2] [0] = "Bangalore";

str [3] [0] = "Den lyserøde by ved navn Jaipur";

str [4] [0] = "Hyderabad";

Her er den komplette kodeliste, der illustrerer, hvordan du kan erklære et takket array, gemme data og derefter hente og vise dem i konsollen.

offentlig statisk tomrum Main (streng [] args)

       {

// Erklær først det takkede array

streng [] [] str = ny streng [5] [];

str [0] = ny streng [5];

str [1] = ny streng [10];

str [2] = ny streng [20];

str [3] = ny streng [50];

str [4] = ny streng [10];

// Gem nu data i det takkede array

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

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

str [2] [0] = "Bangalore";

str [3] [0] = "Den lyserøde by ved navn Jaipur";

str [4] [0] = "Hyderabad";

// Endelig skal du vise indholdet af hver af strengarrayerne inden i det takkede array

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

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

Console.Read ();

       }

Som du kan se i ovenstående program er antallet af rækker i den takkede array fast, men antallet af kolonner varierer. Dette eksempel repræsenterer et todimensionalt tagget array. Hvis du bruger et normalt todimensionelt array, bliver du nødt til at forbruge 5 x 50, dvs. 250 byte. Årsagen er, at du bliver nødt til at have plads på 50 byte i hver af matrixerne i det takkede array for at rumme den største streng. I dette eksempel er den største streng af størrelse 50. Tværtimod, når du bruger et ujævn array, ender du kun med at forbruge 95 byte! Interessant, er det ikke?

Når du udfører ovenstående program, vises strengene, der er gemt i det takkede array i konsolvinduet.

Et andet eksempel - en takket række heltal

På samme måde som hvordan vi har oprettet takkede strenge, kan du også oprette takkede array med heltal. Faktisk kan du have en takket række af enhver datatype. Her er hvordan du kan erklære et takket array i C #.

int [] [] numreArray;

Følgende kodestykke illustrerer, hvordan du kan erklære et heltal tagget array, dvs. et takket array, der igen kan gemme arrays af heltal af forskellige elementer.

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

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

   {

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

   }

Ovenstående kodestykke opretter et heltal, tagget array med navnet numbersArray, som igen indeholder heltal arrays af forskellige størrelser.