So arbeiten Sie mit gezackten Arrays in C #

Ein Array kann als sequentielle Sammlung von Elementen desselben Datentyps definiert werden. Die Elemente eines Arrays werden an zusammenhängenden Speicherorten gespeichert. Arrays können ein- oder mehrdimensional sein. Ein gezacktes Array ist ein spezieller Typ eines mehrdimensionalen Arrays, bei dem jedes Array (ein gezacktes Array ist tatsächlich ein Array von Arrays) eine unterschiedliche Größe haben kann.

Sie können gezackte Arrays in jeder Computersprache haben, die Arrays unterstützt. Ein gezacktes Array (auch als zerlumptes Array bezeichnet) ist ein Array von Arrays, bei denen die Elementarrays wiederum unterschiedliche Abmessungen und Größen haben können. Sie können mehrdimensionale Arrays implementieren, die gezackte Arrays sind, um die Leistung zu verbessern.

Erste Schritte mit gezackten Arrays in C #

In diesem Abschnitt erfahren Sie, wie Sie gezackte Arrays deklarieren, initialisieren und darauf zugreifen. Wie wir wissen, besteht ein gezacktes Array aus einem Array von Arrays ähnlicher oder unterschiedlicher Größe. Mit anderen Worten, in einem gezackten Array ist die Anzahl der Zeilen festgelegt, die Anzahl der Spalten kann jedoch variieren. Wenn Sie ein gezacktes Array deklarieren, können Sie einfach die Anzahl der Zeilen des Arrays deklarieren und bevorzugen, die Anzahl der Spalten zur Laufzeit anzugeben.

Lassen Sie uns anhand einiger Codebeispiele alles verstehen, was wir bisher auf gezackten Arrays gelernt haben. Betrachten Sie das folgende Array.

string[][] str = new string[5][];

Sie haben die Zeilen des Arrays deklariert. Dieses Array enthält 5 Zeilen, die wiederum 5 String-Arrays unterschiedlicher Länge enthalten können. Lassen Sie uns nun sehen, wie wir 5 Arrays im Array mit dem Namen str deklarieren können, die jeweils unterschiedliche Längen haben. Das folgende Codefragment zeigt, wie dies erreicht werden kann.

str[0] = new string[5];

str[1] = new string[10];

str[2] = new string[20];

str[3] = new string[50];

str[4] = new string[10];

Sie können jetzt Zeichenfolgen unterschiedlicher Länge im gezackten Array speichern, wie im folgenden Codeausschnitt gezeigt.

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

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

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

str[3][0] = "The pink city named Jaipur";

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

Hier ist die vollständige Codeliste, die zeigt, wie Sie ein gezacktes Array deklarieren, Daten speichern und dann abrufen und in der Konsole anzeigen können.

public static void Main(string[] args)

       {

         //First declare the jagged array

           string[][] str = new string[5][];

           str[0] = new string[5];

           str[1] = new string[10];

           str[2] = new string[20];

           str[3] = new string[50];

           str[4] = new string[10];

           //Now store data in the jagged array

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

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

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

           str[3][0] = "The pink city named Jaipur";

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

            //Lastly, display the content of each of the string arrays inside the jagged array

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

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

           Console.Read();

       }

Wie Sie im obigen Programm sehen können, ist die Anzahl der Zeilen des gezackten Arrays festgelegt, die Anzahl der Spalten variiert jedoch. Dieses Beispiel zeigt ein zweidimensionales gezacktes Array. Wenn Sie ein normales zweidimensionales Array verwenden würden, müssten Sie 5 x 50, dh 250 Bytes, verbrauchen. Der Grund dafür ist, dass Sie in jedem der Arrays im gezackten Array einen Speicherplatz von 50 Byte benötigen, um die größte Zeichenfolge aufzunehmen. In diesem Beispiel hat die größte Zeichenfolge die Größe 50. Im Gegensatz dazu verbrauchen Sie bei Verwendung eines gezackten Arrays nur 95 Byte! Interessant, nicht wahr?

Wenn Sie das obige Programm ausführen, werden die im gezackten Array gespeicherten Zeichenfolgen im Konsolenfenster angezeigt.

Ein weiteres Beispiel - ein gezacktes Array von Ganzzahlen

Ähnlich wie wir ein gezacktes Array von Zeichenfolgen erstellt haben, können Sie auch ein gezacktes Array von Ganzzahlen erstellen. Tatsächlich können Sie ein gezacktes Array eines beliebigen Datentyps haben. So können Sie ein gezacktes Array in C # deklarieren.

int [][] numbersArray;

Das folgende Codefragment zeigt, wie Sie ein ganzzahliges gezacktes Array deklarieren können, dh ein gezacktes Array, das wiederum Arrays von Ganzzahlen verschiedener Elemente speichern kann.

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

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

   {

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

   }

Das obige Codefragment erstellt ein ganzzahliges gezacktes Array mit dem Namen numbersArray, das wiederum ganzzahlige Arrays unterschiedlicher Größe enthält.