TOC

This article has been localized into German by the community.

Sammlungen:

Arrays

Arrays arbeiten als Sammlungen von Elementen(items), zum Beispiel ( eine Sammlung )Strings. Sie können Arrays verwenden, um Elemente in einer einzigen Gruppe zusammenzufassen und verschiedene Operationen an ihnen durchzuführen, z.B. Sortieren. Außerdem arbeiten mehrere Methoden im (Microsoft.NET) Framework mit Arrays, um es zu ermöglichen, einen ganzen Bereich von Elementen anstatt nur eines zu akzeptieren. Allein diese Tatsache macht es wichtig, etwas über Arrays zu wissen.

Arrays werden ähnlich wie Variablen deklariert, mit eckigen Klammern [] nach dem Datentyp, wie folgt:

string[] names;

Sie müssen das Array instanziieren, um es zu verwenden, was folgendermaßen geschieht:

string[] names = new string[2];

Die Zahl (2) ist die Größe des Arrays, also die Anzahl der Elemente, die wir hineinlegen können. Das Einfügen von Elementen in das Array ist auch ziemlich einfach:

names[0] = "John Doe";

Aber warum 0? Wie bei so vielen Dingen in der Welt der Programmierung beginnt die Zählung bei 0 statt bei 1. Also wird das erste Element als 0 indiziert, das nächste als 1 und so weiter. Sie sollten sich daran erinnern, wenn Sie das Array mit Elementen füllen, da eine Überfüllung zu einer Ausnahme führt. Wenn Sie sich den Initialisierer ansehen und das Array auf eine Größe von 2 setzen, ist es naheliegend, die Elemente 0, 1 und 2 hinein zu legen, aber das ist ein Element zu viel. Wenn Sie es tun, wird eine Ausnahme ausgelöst. Wir werden Ausnahmen in einem späteren Kapitel diskutieren.

Davor lernten wir Schleifen kennen, und diese funktionieren natürlich hervorragend mit Arrays. Die gängigste Methode, um Daten aus einem Array abzurufen, besteht darin, sie zu durchlaufen und mit jedem Wert eine Operation durchzuführen. Lassen Sie uns das Array von vorher verwenden, um ein echtes Beispiel zu geben:

using System;
using System.Collections;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] names = new string[2];

            names[0] = "John Doe";
            names[1] = "Jane Doe";

            foreach(string s in names)
                Console.WriteLine(s);

            Console.ReadLine();
        }
    }
}

Wir verwenden die "foreach"-Schleife, weil sie am einfachsten ist, aber natürlich hätten wir stattdessen auch eine der anderen Arten von Schleifen verwenden können. Die for-Schleife ist auch gut im Umgang mit Arrays, zum Beispiel wenn Sie jedes Element wie folgt zählen müssen:

for(int i = 0; i < names.Length; i++)
    Console.WriteLine("Item number " + i + ": " + names[i]);

Es ist eigentlich sehr einfach. Wir verwenden die "Length" -Eigenschaft des Arrays, um zu entscheiden, wie oft die Schleife iterieren soll, und dann verwenden wir den Zähler (i), um auszugeben, wo wir uns gerade befinden, und das Element aus dem Array zu holen. Genauso wie wir eine Nummer, einen sogenannten Indexer, benutzt haben, um Objekte in das Array zu legen, können wir sie verwenden, um ein bestimmtes Objekt wieder herauszuholen.

Ich habe Ihnen schon vorher gesagt, dass wir ein Array verwenden können, um eine Reihe von Werten zu sortieren, und es ist wirklich sehr einfach. Die Array-Klasse enthält eine Reihe intelligenter Methoden zum Arbeiten mit Arrays. In diesem Beispiel werden Zahlen anstelle von Strings verwendet, nur um etwas anderes zu versuchen, aber es könnten genauso gut Strings gewesen sein. Ich möchte Ihnen eine andere Möglichkeit zeigen, ein Array zu füllen, was viel einfacher ist, wenn Sie eine kleine vordefinierte Menge von Elementen haben, die Sie in Ihr Array einfügen möchten. Sehen Sie mal:

int[] numbers = new int[5] { 4, 3, 8, 0, 5 };

Mit einer Zeile haben wir ein Array mit einer Größe von 5 erstellt und es mit 5 ganzen Zahlen gefüllt. Wenn Sie das Array wie folgt füllen, erhalten Sie einen zusätzlichen Vorteil, da der Compiler überprüft und sicherstellt, dass Sie nicht zu viele Elemente in das Array einfügen. Versuchen Sie, eine Nummer mehr hinzuzufügen - Sie werden sehen, dass der Compiler sich darüber beschweren wird.

Eigentlich geht es noch kürzer, so zum Beispiel:

int[] numbers = { 4, 3, 8, 0, 5 };

Das ist kurz und Sie müssen keine Größe angeben. Der erste Ansatz kann jedoch später leichter zu lesen sein.

Lassen Sie uns versuchen, das Array zu sortieren - hier ist ein komplettes Beispiel:

using System;
using System.Collections;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] numbers = { 4, 3, 8, 0, 5 };

            Array.Sort(numbers);

            foreach(int i in numbers)
                Console.WriteLine(i);

            Console.ReadLine();
        }
    }
}

Das einzig wirklich neue ist hier der Befehl "Array.Sort". Es kann verschiedene Parameter für verschiedene Arten der Sortierung annehmen, aber in diesem Fall braucht es einfach unser Array. Wie Sie aus dem Ergebnis sehen können, wurde unser Array sortiert. Die Array-Klasse hat auch andere Methoden, zum Beispiel die "Reverse()" -Methode. Sie können in der Dokumentation nachsehen, um alle Funktionen der Array-Klasse zu sehen.

Die Arrays, die wir bisher verwendet haben, hatten nur eine Dimension. C# -Arrays können jedoch mehrdimensional sein und werden manchmal als Arrays in Arrays bezeichnet. Multidimensionale Arrays gibt es in zwei Varianten in C#: Rechteckige (rectangular) Arrays und gezackte (jagged) Arrays. Der Unterschied ist, dass bei rechteckigen Arrays alle Dimensionen gleich groß sein müssen, daher der Name rechteckig. Ein gezacktes Array kann Dimensionen verschiedener Größen haben. Multidimensionale Arrays sind ein schweres Thema und ein wenig außerhalb des Rahmens dieses Tutorials.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!