Arrays in C#

高洛峰
Freigeben: 2016-12-16 14:14:16
Original
1354 Leute haben es durchsucht

Array-Übersicht
Ein Array ist eine Datenstruktur, die mehrere Variablen desselben Typs enthält. Arrays werden mithilfe von Typen deklariert:
Arrays haben die folgenden Eigenschaften:

Arrays können eindimensional, mehrdimensional oder verschachtelt sein.

Numerische Array-Elemente haben ihren Standardwert auf Null gesetzt, während Referenzelemente ihren Standardwert auf Null gesetzt haben.

Ein Jagged-Array ist ein Array von Arrays, daher sind seine Elemente Referenztypen, die mit Null initialisiert werden.

Arrays werden von Null an indiziert: Ein Array mit n Elementen wird von 0 bis n-1 indiziert.

Array-Elemente können von jedem Typ sein, einschließlich Array-Typen.

Array-Typen sind Referenztypen, die vom abstrakten Basistyp Array abgeleitet sind. Da dieser Typ IEnumerable und IEnumerable implementiert, können Sie foreach-Iteration für alle Arrays in C# verwenden.

C#-Arrays werden bei Null indiziert, d. h. der Array-Index beginnt bei Null. Arrays funktionieren in C# ähnlich wie in den meisten anderen gängigen Sprachen. Es gibt jedoch einige Unterschiede, die beachtet werden sollten.
Bei der Deklaration eines Arrays müssen eckige Klammern ([]) auf den Typ und nicht auf den Bezeichner folgen. In C# ist es eine illegale Syntax, eckige Klammern nach einem Bezeichner zu setzen.

int[] table; // not int table[];
Nach dem Login kopieren

Ein weiteres Detail ist, dass die Größe eines Arrays nicht Teil seines Typs ist. Sie können ein Array deklarieren und ihm ein beliebiges Array von int-Objekten zuweisen, unabhängig von der Array-Länge.

int[] numbers; // declare numbers as an int array of any size
numbers = new int[10];  // numbers is a 10-element array
numbers = new int[20];  // now it's a 20-element array
Nach dem Login kopieren

Arrays deklarieren
C# unterstützt eindimensionale Arrays, mehrdimensionale Arrays (rechteckige Arrays) und Arrays von Arrays (verschachtelte Arrays). Das folgende Beispiel zeigt, wie verschiedene Arten von Arrays deklariert werden:
Eindimensionales Array:

int[] numbers;
Nach dem Login kopieren

Mehrdimensionales Array:

string[,] names;
Nach dem Login kopieren

Array von Arrays (verschachtelt):

byte[][] scores;
Nach dem Login kopieren

Durch die Deklaration von Arrays (siehe oben) werden diese nicht tatsächlich erstellt.

In C# sind Arrays Objekte und müssen instanziiert werden. Das folgende Beispiel zeigt, wie ein Array erstellt wird:
Eindimensionales Array:

int[] numbers = new int[5];
Nach dem Login kopieren

Mehrdimensionales Array:

string[,] names = new string[5,4];
Nach dem Login kopieren

Array von Arrays (verschachtelt):

byte[][] scores = new byte[5][];
for (int x = 0; x < scores.Length; x++) 
{
   scores[x] = new byte[4];
}
Nach dem Login kopieren

Auch große Arrays sind möglich. Sie können beispielsweise dreidimensionale rechteckige Arrays haben:

int[,,] buttons = new int[4,5,3];
Nach dem Login kopieren

Sie können sogar rechteckige Arrays und gezackte Arrays mischen. Der folgende Code deklariert beispielsweise ein eindimensionales Array aus einem zweidimensionalen Array vom Typ int und einem dreidimensionalen Array vom Typ.

int[][,,][,] numbers;
Nach dem Login kopieren

Das Initialisieren eines Arrays
bietet eine einfache und unkomplizierte Möglichkeit, ein Array zum Zeitpunkt der Deklaration zu initialisieren, indem der Anfangswert in geschweifte Klammern ({}) eingeschlossen wird. Die folgenden Beispiele zeigen verschiedene Möglichkeiten, Arrays unterschiedlicher Typen zu initialisieren.
Hinweis: Wenn das Array bei der Deklaration nicht initialisiert wird, werden die Array-Mitglieder automatisch auf den Standardanfangswert des Array-Typs initialisiert. Wenn ein Array außerdem als Feld eines Typs deklariert ist, wird es bei der Instanziierung des Typs auf den Standardwert Null gesetzt.
Eindimensionale Arrays

int[] numbers = new int[5] {1, 2, 3, 4, 5};
string[] names = new string[3] {"Matt", "Joanne", "Robert"};
Nach dem Login kopieren

Die Größe des Arrays kann wie folgt weggelassen werden:

int[] numbers = new int[] {1, 2, 3, 4, 5};
string[] names = new string[] {"Matt", "Joanne", "Robert"};
Nach dem Login kopieren

Wenn ein Initialisierer bereitgestellt wird, kann der neue Operator auch weggelassen werden , wie unten gezeigt:

int[] numbers = {1, 2, 3, 4, 5};
string[] names = {"Matt", "Joanne", "Robert"};
Nach dem Login kopieren

Mehrdimensionales Array

int[,] numbers = new int[3, 2] { {1, 2}, {3, 4}, {5, 6} };
string[,] siblings = new string[2, 2] { {"Mike","Amy"}, {"Mary","Albert"} };
Nach dem Login kopieren

Die Größe des Arrays kann weggelassen werden, wie unten gezeigt:

int[,] numbers = new int[,] { {1, 2}, {3, 4}, {5, 6} };
string[,] siblings = new string[,] { {"Mike","Amy"}, {"Mary","Albert"} };
Nach dem Login kopieren

If Wird ein Anfangswert bereitgestellt, können Sie den neuen Operator auch weglassen, wie unten gezeigt:

int[,] numbers = { {1, 2}, {3, 4}, {5, 6} };
string[,] siblings = { {"Mike", "Amy"}, {"Mary", "Albert"} };
Nach dem Login kopieren

Interleaved Array (Array von Arrays)
Sie können ein interleaved Array wie im folgenden Beispiel gezeigt initialisieren:

int[][] numbers = new int[2][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
Nach dem Login kopieren

Die Größe des ersten Arrays kann wie folgt weggelassen werden:

int[][] numbers = new int[][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
Nach dem Login kopieren

- oder -

int[][] numbers = { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
Nach dem Login kopieren

Beachten Sie, dass keine Initialisierung von erfolgt die Elemente einer Jagged-Array-Grammatik.

Zugriff auf Array-Mitglieder
Der Zugriff auf Array-Mitglieder kann direkt erfolgen. Der folgende Code erstellt beispielsweise ein Array mit dem Namen „Numbers“ und weist dann 5 dem fünften Element des Arrays zu. :

int[] numbers = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
numbers[4] = 5;
Nach dem Login kopieren

Der folgende Code deklariert ein mehrdimensionales Array und weist dem Mitglied an [1, 1] den Wert 5 zu:

int[,] numbers = { {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10} };
numbers[1, 1] = 5;
Nach dem Login kopieren

Der folgende Code deklariert ein eindimensionales gezacktes Array Array, das zwei Elemente enthält. Das erste Element ist ein Array aus zwei Ganzzahlen und das zweite Element ist ein Array aus drei Ganzzahlen:

int[][] numbers = new int[][] { new int[] {1, 2}, new int[] {3, 4, 5}};
Nach dem Login kopieren

Die folgende Anweisung weist dem ersten Element des ersten Arrays 58 und dem ersten 58 zu Element des ersten Arrays. Dem zweiten Element der beiden Arrays wird 667 zugewiesen:

numbers[0][0] = 58;
numbers[1][1] = 667;
Nach dem Login kopieren

Arrays sind Objekte. In C# sind Arrays eigentlich Objekte. System.Array ist der abstrakte Basistyp für alle Array-Typen. Sie können die Eigenschaften von System.Array sowie andere Klassenmitglieder verwenden. Ein Beispiel für diese Verwendung ist die Verwendung der Eigenschaft „Länge“, um die Länge eines Arrays abzurufen. Der folgende Code weist die Länge des Zahlenarrays (die 5 beträgt) einer Variablen namens „LengthOfNumbers“ zu:

int[] numbers = {1, 2, 3, 4, 5};
int LengthOfNumbers = numbers.Length;
Nach dem Login kopieren

Die System.Array-Klasse bietet viele nützliche andere Methoden/Eigenschaften, beispielsweise zum Sortieren, Suchen und Kopieren Array-Methoden.

Verwenden Sie foreach für Arrays
C# stellt auch die foreach-Anweisung bereit. Diese Anweisung bietet eine einfache und klare Möglichkeit, die Elemente eines Arrays zu durchlaufen.
Zum Beispiel erstellt der folgende Code ein Array mit dem Namen „numbers“ und iteriert über das Array mithilfe einer foreach-Anweisung:

int[] numbers = {4, 5, 6, 1, 2, 3, -2, -1, 0};
foreach (int i in numbers)
{
   System.Console.WriteLine(i);
}
Nach dem Login kopieren

Dank mehrdimensionaler Arrays können Sie dieselbe Methode verwenden, um über die Elemente zu iterieren. zum Beispiel:

int[,] numbers = new int[3, 2] {{9, 99}, {3, 33}, {5, 55}};
foreach(int i in numbers)
{
   Console.Write("{0} ", i);
}
Nach dem Login kopieren

Die Ausgabe dieses Beispiels ist:

9 99 3 33 5 55
Nach dem Login kopieren

Dank mehrdimensionaler Arrays erhalten Sie jedoch durch die Verwendung verschachtelter for-Schleifen eine bessere Kontrolle über die Array-Elemente.


Weitere Artikel zu Arrays in C# finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage