Ein Array repräsentiert eine feste Anzahl von Elementen eines bestimmten Typs. Elemente werden in zusammenhängenden Speicherblöcken gespeichert und Sie können effizient auf Elemente zugreifen, solange Sie deren Index kennen.
Die C#-Syntax zum Deklarieren und Initialisieren eines Arrays lautet wie folgt:
// create a string array to hold 5 languages string[] languages = new string[3];
Nach dem Deklarieren eines Arrays können Sie das Quadratsymbol im Array verwenden, um die Elemente im Array zu füllen.
languages[0] = "csharp"; languages[1] = "visual basic"; languages[2] = "f#";
Es gibt jedoch eine alternative prägnante Syntax, die die beiden oben genannten Schritte in einem Schritt kombiniert.
string[] languages = new string[] { "csharp", "visual basic", "f#" };
Bei implizit typisierten Variablen in C# können Sie den Typ auf der linken Seite des Variablennamens entfernen und einfach var verwenden.
var languages = new string[] { "csharp", "visual basic", "f#" };
Sie können mit derselben quadratischen Notation auf jedes Element im Array zugreifen.
string language = languages[0]; Console.WriteLine(language); // prints csharp
Die Längeneigenschaft eines Arrays sagt uns, wie viele Elemente sich im Array befinden.
int count = languages.Length; Console.WriteLine(count); // 3
Es ist wichtig zu bedenken, dass die Länge eines Arrays nach seiner Erstellung nicht mehr geändert werden kann. Der Versuch, auf ein Element außerhalb der Grenzen des Arrays zuzugreifen, löst eine Ausnahme aus.
string lang = languages[3]; // throws System.IndexOutOfRangeException
Wenn Sie eine Schleife über ein Array durchführen möchten, verwenden Sie die von der Sprache bereitgestellten for- oder foreach-Schleifen.
// for loop for (int i = 0; i < languages.Length; i++){ string l = languages[i]; Console.WriteLine(l); // prints the names of languages in sequence } // foreach loop foreach (string l in languages){ Console.WriteLine(l); // prints the names of languages in sequence }
Wenn Sie ein Array erstellen, initialisiert der C#-Compiler die Elemente auf ihre Standardwerte. Wenn Sie beispielsweise ein Array mit Ganzzahlen erstellen, wird der Wert jedes Elements auf 0 gesetzt.
var numbers = new int[3]; foreach (int num in numbers){ Console.WriteLine(num); // prints 000 }
Wenn ein Element einen Werttyp hat, wird jedem Mitglied dieses Typs sein Standardwert zugewiesen.
Point[] a = new Point[4]; int x = a[2].X; Console.WriteLine(x); // prints 0 public struct Point { public int X, Y; }
Bei Referenztypen erstellt der Compiler jedoch nur Nullreferenzen für jedes Element.
User[] u = new User[4]; int y = u[2].Y; // NullReference exception public class User { public int X, Y; }
Um diesen Fehler zu vermeiden, müssen Sie jedes Element wie unten gezeigt explizit initialisieren.
User[] users = new User[5]; for (int i = 0; i < users.Length; i++) // Iterate i from 0 to 999 users[i] = new User();
Echtzeitdemonstration
using System; class Program{ static void Main(){ string[] languages = new string[3]; // create a string array to hold 5 languages languages[0] = "csharp"; languages[1] = "visual basic"; languages[2] = "f#"; string[] langugages_two = new string[] { "csharp", "visual basic", "f#" }; var languages_three = new string[] { "csharp", "visual basic", "f#" }; string language = languages[0]; Console.WriteLine(language); // prints csharp int count = languages.Length; // 3 Console.WriteLine(count); //string lang = languages[3]; // throws System.IndexOutOfRangeException // for loop for (int i = 0; i < languages.Length; i++){ string l = languages[i]; Console.WriteLine(l); // prints the names of languages in sequence } // foreach loop foreach (string l in languages){ Console.WriteLine(l); // prints the names of languages in sequence } var numbers = new int[3]; foreach (int num in numbers){ Console.WriteLine(num); // prints 000 } Point[] a = new Point[4]; int x = a[2].X; Console.WriteLine(x); // prints 0 User[] u = new User[4]; //int y = u[2].Y; // NullReference exception User[] users = new User[5]; for (int i = 0; i <users.Length; i++) // Iterate i from 0 to 999 users[i] = new User(); } } public struct Point { public int X, Y; } public class User { public int X, Y; }
csharp 3 csharp visual basic f# csharp visual basic f# 0 0 0 0
Das obige ist der detaillierte Inhalt vonWie funktionieren Arrays in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!