Heim  >  Artikel  >  Backend-Entwicklung  >  Wie funktionieren Arrays in C#?

Wie funktionieren Arrays in C#?

WBOY
WBOYnach vorne
2023-09-10 09:41:081254Durchsuche

数组在 C# 中如何工作?

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
}

Standardwerte

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();

Beispiel

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; }

Ausgabe

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen