Maison > développement back-end > Tutoriel C#.Net > Comment fonctionnent les tableaux en C# ?

Comment fonctionnent les tableaux en C# ?

WBOY
Libérer: 2023-09-10 09:41:08
avant
1320 Les gens l'ont consulté

数组在 C# 中如何工作?

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];
Copier après la connexion

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#";
Copier après la connexion

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#" };
Copier après la connexion

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#" };
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
}
Copier après la connexion

Valeurs par défaut

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
}
Copier après la connexion

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; }
Copier après la connexion

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; }
Copier après la connexion

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();
Copier après la connexion

Exemple

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; }
Copier après la connexion

Sortie

csharp
3
csharp
visual basic
f#
csharp
visual basic
f#
0
0
0
0
Copier après la connexion

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!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal