Un tableau représente un nombre fixe d'éléments d'un type donné. Les éléments sont stockés dans des blocs de mémoire contigus et vous pouvez accéder efficacement aux éléments tant que vous connaissez leur index.
La syntaxe C# pour déclarer et initialiser un tableau est la suivante -
// create a string array to hold 5 languages string[] languages = new string[3];
Après avoir déclaré un tableau, vous pouvez utiliser le symbole carré sur le tableau pour remplir les éléments du tableau.
languages[0] = "csharp"; languages[1] = "visual basic"; languages[2] = "f#";
Cependant, il existe une syntaxe concise alternative qui combine les deux étapes ci-dessus en une seule étape.
string[] languages = new string[] { "csharp", "visual basic", "f#" };
Avec les variables implicitement typées en C#, vous pouvez vous débarrasser du type sur le côté gauche du nom de la variable et utiliser simplement var.
var languages = new string[] { "csharp", "visual basic", "f#" };
Vous pouvez accéder à n'importe quel élément du tableau en utilisant la même notation carrée.
string language = languages[0]; Console.WriteLine(language); // prints csharp
La propriété Longueur d'un tableau nous indique combien d'éléments se trouvent dans le tableau.
int count = languages.Length; Console.WriteLine(count); // 3
Il est important de se rappeler que la longueur d'un tableau ne peut pas être modifiée une fois qu'il est créé. Tenter d'accéder à un élément en dehors des limites du tableau lève une exception.
string lang = languages[3]; // throws System.IndexOutOfRangeException
Si vous souhaitez parcourir un tableau, utilisez la boucle for ou foreach fournie par le langage.
// 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 }
Lorsque vous créez un tableau, le compilateur C# initialise les éléments à leurs valeurs par défaut. Par exemple, la création d'un tableau d'entiers définit la valeur de chaque élément sur 0.
var numbers = new int[3]; foreach (int num in numbers){ Console.WriteLine(num); // prints 000 }
Lorsqu'un élément est d'un type valeur, chaque membre de ce type se voit attribuer sa valeur par défaut.
Point[] a = new Point[4]; int x = a[2].X; Console.WriteLine(x); // prints 0 public struct Point { public int X, Y; }
Cependant, pour les types référence, le compilateur crée simplement des références nulles pour chaque élément.
User[] u = new User[4]; int y = u[2].Y; // NullReference exception public class User { public int X, Y; }
Pour éviter cette erreur, vous devez initialiser chaque élément explicitement comme indiqué ci-dessous.
User[] users = new User[5]; for (int i = 0; i < users.Length; i++) // Iterate i from 0 to 999 users[i] = new User();
Démonstration en temps réel
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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!