English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Variablen werden verwendet, um Literalwerte zu speichern, während Arrays zur Speicherung mehrerer Literalwerte verwendet werden.
Ein Array ist ein Datenstruktur, die eine festgelegte Anzahl von Textwerten desselben Datentyps (Elementen) speichert. Arrayelemente werden kontinuierlich im Speicher gespeichert.
In C# können Arrays dreier Typen sein: Ein dimensionales Array, mehrdimensionales Array und Zähneförmiges Array. Hier werden Sie ein-dimensionalen Arrays kennenlernen.
Das folgende Diagramm zeigt die Darstellungsform des Arrays.
Sie können eckige Klammern verwenden, um den Typ der Arrayelemente zu spezifizieren und ein Array zu deklarieren.
int[] evenNums; // Ganzzahlen-Array string[] cities; // String-Array
Die folgenden Anweisungen deklarieren und fügen in einer Anweisung Werte zu einem Array hinzu.
int[] evenNums = new int[5]{ 2, 4, 6, 8, 10 }; string[] cities = new string[3]{ "Mumbai", "London", "New York" };
In diesem Fall kann das Array evenNums maximal fünf Ganzzahlen speichern. new int[5] Zahl in Klammern 5 ist die Größe des Arrays. Ebenso beträgt die Größe des Arrays cities3.Arrayelemente werden in einer Liste von Kommas getrennten Elementen in Klammern {} hinzugefügt.
Variablentypen für Arrays können mit var deklariert werden, ohne eckige Klammern [] zu verwenden.
var evenNums = new int[]{ 2, 4, 6, 8, 10}; var cities = new string[]{ "Mumbai", "London", "New York" };
Wenn Sie bei der Deklaration Arrayelemente hinzufügen möchten, ist size optional. Der Compiler schließt die Größe aus der Anzahl der Elemente in den Klammern ab, wie folgt.
int[] evenNums = { 2, 4, 6, 8, 10}; string[] cities = { "Mumbai", "London", "New York" }
Nachfolgendes Beispiel zeigt die ungültige Erklärung eines Arrays.
//Die Größe muss angegeben werden int[] evenNums = new int[]; //Die Anzahl der Elemente muss der angegebenen Größe entsprechen int[] evenNums = new int[5] { 2, 4 }; //var kann nicht mit dem Array-Initialisierungsaufruf verwendet werden var evenNums = { 2, 4, 6, 8, 10};
Es ist nicht erforderlich, ein Array in einer einzigen Anweisung zu deklarieren und zu initialisieren. Sie können zunächst ein Array deklarieren und es später mit dem new-Operator initialisieren.
int[] evenNums; evenNums = new int[5]; // oder evenNums = new int[]{ 2, 4, 6, 8, 10 };
Sie können Elemente eines Arrays mit Indizes abrufen. Ein Index ist eine Nummer, die mit jedem Arrayelement verbunden ist, beginnend mit Index 0 bis zur Größe des Arrays-1 beenden.
Nachfolgendes Beispiel zeigt die Verwendung von Indizes, um/Aktualisieren und abrufen Sie Arrayelemente.
int[] evenNums = new int[5]; evenNums[0] = 2; evenNums[1] = 4; //evenNums[6] = 12; //werfen Sie einen Laufzeitfehler IndexOutOfRange aus Console.WriteLine(evenNums[0]); //Ausgabe 2 Console.WriteLine(evenNums[1}); //Ausgabe 4
Bitte beachten Sie, dass das Hinzufügen von Elementen, die über die angegebene Größe hinausgehen, den IndexOutOfRangeException-Aufruf auslöst.
Verwenden Sie for-Schleifen, um auf Arrayelemente zuzugreifen. Verwenden Sie das length-Attribut des Arrays im Bedingungensexpression des for-Loops.
int[] evenNums = { 2, 4, 6, 8, 10 }; for(int i = 0; i < evenNums.Length; i++){ Console.WriteLine(evenNums[i]); } for(int i = 0; i < evenNums.Length; i++){ evenNums[i] = evenNums[i] + 10; // Aktualisieren Sie den Wert jedes Elements10 }
Verwenden Sie foreach-Schleifen, um den Wert der Arrayelemente zu lesen, ohne Index zu verwenden.
int[] evenNums = { 2, 4, 6, 8, 10}; string[] cities = { "Mumbai", "London", "New York" }; foreach(var item in evenNums){ Console.WriteLine(item); } foreach(var city in cities){ Console.WriteLine(city); }
Alle Arrays in C# sind von der abstrakten Basisklasse System.Array abgeleitet.
Die Array-Klasse implementiert das IEnumerable-Interface, sodass Sie LINQ- Erweiterungsmethoden wie Max(), Min(), Sum(), reverse() und andere verwenden können.
int[] nums = new int[5]{ 10, 15, 16, 8, 6 }; nums.Max(); // Rückgabe16 nums.Min(); // Rückgabe6 nums.Sum(); // Rückgabe55 nums.Average(); // Rückgabe55
Das System.Array-Klasse enthält Methoden zur Erstellung, Operation, Suche und Sortierung von Arrays.
int[] nums = new int[5]{ 10, 15, 16, 8, 6 }; Array.Sort(nums); // Sortieren Sie das Array Array.Reverse(nums); // Sortieren Sie das Array in absteigender Reihenfolge Array.ForEach(nums, n => Console.WriteLine(n)); // Iterieren Sie durch das Array Array.BinarySearch(nums, 5);// Binärsuche
Man kann ein Array als Parameter an eine Methode übergeben. Ein Array ist ein Referenztyp, daher kann diese Methode den Wert der Arrayelemente ändern.
public static void Main() { int[] nums = { 1, 2, 3, 4, 5 }; UpdateArray(nums); foreach(var item in nums) Console.WriteLine(item); } public static void UpdateArray(int[] arr) { for(int i = 0; i < arr.Length; i++) arr[i] = arr[i] + 10; }
Ernsthaftes Verständnis Mehrdimensionales Array und Zahnräder-Array.