English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tableaux (Array) C#

Les variables sont utilisées pour stocker des valeurs littérales, tandis que les tableaux sont utilisés pour stocker plusieurs valeurs littérales.

Un tableau est une structure de données qui stocke un nombre fixe de valeurs textuelles (éléments) du même type. Les éléments du tableau sont stockés en continu dans la mémoire.

En C#, un tableau peut être de trois types : tableau unidimensionnel, tableau multidimensionnel et tableau en dents de scie. Ici, vous allez apprendre le tableau unidimensionnel.

La figure suivante explique la forme de représentation du tableau.

Représentation du tableau

Déclaration et initialisation du tableau

Vous pouvez utiliser des crochets pour spécifier le type d'éléments du tableau pour déclarer un tableau.

int[] evenNums;  // tableau d'entiers
string[] cities; // tableau de chaînes de caractères

Les instructions suivantes déclarent et ajoutent des valeurs au tableau en une seule instruction.

int[] evenNums = new int[5]{ 2, 4, 6, 8, 10 }; 
string[] cities = new string[3]{ "Mumbai", "London", "New York" };

dans ce cas, le tableau evenNums peut stocker au maximum cinq entiers. new int[5] le nombre entre les crochets 5 représente la taille du tableau. De même, la taille du tableau cities est3Les éléments du tableau sont ajoutés dans une liste séparée par des virgules dans les accolades {}.

Les variables de type tableau peuvent être déclarées avec var sans crochets [].

var evenNums = new int[]{ 2, 4, 6, 8, 10}; 
var cities = new string[]{ "Mumbai", "London", "New York" };

Si vous ajoutez des éléments au tableau lors de la déclaration, la taille est optionnelle. Le compilateur déduit la taille à partir du nombre d'éléments entre les accolades, comme suit.

int[] evenNums = { 2, 4, 6, 8, 10}; 
string[] cities = { "Mumbai", "London", "New York" }

Les exemples suivants montrent des déclarations de tableau invalides.

//Il est nécessaire de spécifier la taille 
int[] evenNums = new int[]; 
//Le nombre d'éléments doit être égal à la taille spécifiée 
int[] evenNums = new int[5] { 2, 4 };
//Il est impossible d'utiliser var avec une instruction d'initialisation de tableau
var evenNums = { 2, 4, 6, 8, 10};

initialisation différée

Il n'est pas nécessaire de déclarer et d'initialiser un tableau dans une seule instruction. Vous pouvez d'abord déclarer un tableau et ensuite l'initialiser avec l'opérateur new.

int[] evenNums;
evenNums = new int[5];
// ou
evenNums = new int[]{ 2, 4, 6, 8, 10 };

accès aux éléments du tableau

Vous pouvez accéder aux éléments du tableau par index. Un index est un nombre associé à chaque élément du tableau, commençant par 0 jusqu'à la taille du tableau-1 fin.

Les exemples suivants utilisent l'index pour ajouter/mise à jour et récupération des éléments du tableau.

int[] evenNums = new int[5];
evenNums[0] =  2;
evenNums[1] =  4;
//evenNums[6] =  12;  //lève une exception d'exécution IndexOutOfRange
Console.WriteLine(evenNums[0]);  //Sortie 2
Console.WriteLine(evenNums[1});  //Sortie 4

Veuillez noter que si vous essayez d'ajouter un élément au-delà de la taille spécifiée, une exception IndexOutOfRangeException sera lancée.

Utiliser la boucle for pour accéder à un tableau

Utiliser la boucle for pour accéder aux éléments d'un tableau. Utilisez la propriété length du tableau dans l'expression de condition de la boucle for.

int[] evenNums = { 2, 4, 6, 8, 10 };
for(int i = 0; i < evenNums.Length;++){
    Console.WriteLine(evenNums[i]);  
}
for(int i = 0; i < evenNums.Length;++){
    evenNums[i] = evenNums[i] + 10;  // Mettre à jour la valeur de chaque élément10
}

Utiliser la boucle foreach pour accéder à un tableau

Utiliser la boucle foreach pour lire la valeur des éléments du tableau sans utiliser d'index.

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

Méthodes LINQ

Tous les tableaux en C# dérivent de la classe de base abstraite System.Array.

La classe Array implémente l'interface IEnumerable, ce qui vous permet d'utiliser des extensions LINQ, telles que Max(), Min(), Sum(), reverse() et autres.

int[] nums = new int[5]{ 10, 15, 16, 8, 6 };
nums.Max(); // Retourner16
nums.Min(); // Retourner6
nums.Sum(); // Retourner55
nums.Average(); // Retourner55

La classe System.Array inclut également des méthodes pour créer, manipuler, rechercher et trier les tableaux.

int[] nums = new int[5]{ 10, 15, 16, 8, 6 };
Array.Sort(nums); // Trier le tableau 
Array.Reverse(nums); // Trier le tableau par ordre décroissant
Array.ForEach(nums, n => Console.WriteLine(n)); // Itérer sur le tableau
Array.BinarySearch(nums, 5);// Recherche binaire

Transmettre un tableau en tant que paramètre

Vous pouvez transmettre un tableau en tant que paramètre à un paramètre de méthode. Un tableau est un type de référence, par conséquent, cette méthode peut modifier la valeur des éléments du tableau.

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;++)
        arr[i] = arr[i] + 10;   
}

Ensuite, découvrez Tableaux multidimensionnels et Tableau en dents de scie.