Tableaux et collections en C#
Les tableaux et collections
Les deux principaux moyens de procéder pour stocker un ensemble de données connexes sont les tableaux et les collections.
Les tableaux en C#
Les tableaux sont des collections d'objets du même type.
Les tableaux peuvent être de n’importe quelle taille, il suffit de définir la taille du tableau lors de la création de celui-ci. Chaque élément du tableau est accessible grâce à un index, celui-ci est un nombre permettant d’atteindre un élément dans le tableau.
Les tableaux peuvent stocker tout type de données que se soit des types références ou des types valeurs.
Tableaux à une dimension
Pour déclarer un tableau voici la syntaxe à utiliser :
type[] nomTableau ;
L’initialisation du tableau peut se faire en même temps que la déclaration ou avant de l’utiliser.
Lors de l’initialisation du tableau, il faut préciser la taille, c’est le nombre de cases disponibles. Dans l’exemple ci-dessous, le nombre d’emplacements sera de 5. Les index pour parcourir le tableau vont de 0 à 4.
type[] nomTableau = new type[5]
Si vous souhaitez affecter des valeurs à votre tableau lors de sa création, utilisez la syntaxe suivante :
int[] notes = new int[] { 12, 13, 5, 17, 19 };
ou
int[] notes = { 12, 13, 5, 17, 19 };
Tableaux multidimensionnels en C#
Un tableau multidimensionnel à deux dimensions ressemble à une grille. Un tableau multidimensionnel à trois dimensions ressemble à un cube.
Syntaxe pour déclarer un tableau à 2 dimensions :
int[,] tableau2D = new int[2,3];
Dans cet exemple le tableau aura 6 emplacements 2 colonnes et 3 lignes.
Au même titre qu’un simple tableau il est possible d’affecter les valeurs aux tableaux lors de sa création à l’aide de la syntaxe suivante :
int[,] tableau2D = { {1, 2, 3}, {4, 5, 6} };
Pour parcourir un tableau à plusieurs dimensions, il suffit d’utiliser une boucle par dimension. Si votre tableau n’a qu’une dimension, une boucle simple suffit. Pour un tableau à deux dimensions, il faut une boucle dans une boucle.
Voici un exemple ci-dessous :
int[,] tableau2D = { {1, 2, 3}, {4, 5, 6} }; for (int i=0; i<2; i++) { for (int j=0; j<3; j++) { tableau2D[i,j] = (i + 1) * (j + 1); } }
Pour atteindre un élément d’un tableau à 2 dimensions, il faut préciser deux index : la colonne et la ligne. Dans l’exemple ci-dessus i représente la colonne et j la ligne.
Tableaux en escalier
Une variante du tableau multidimensionnel est le tableau en escalier, c'est-à-dire de créer un tableau de tableaux.
La différence avec un tableau multidimensionnel et un tableau en escalier est que chaque élément est lui-même un tableau. L’avantage est de pouvoir définir des tableaux dont la taille pourra être différente.
Dans l’exemple ci-dessous, on définit un tableau de 3 emplacements
int[][] tableau = new int[3][];
Dans chaque emplacement, on peut choisir des tableaux de taille différente.
tableau[0] = new int[5]; tableau[1] = new int[4]; tableau[2] = new int[2];
C# et collections
Une liste est généralement plus rapide qu'un tableau si vous devez insérer des éléments au début ou au milieu de la collection.
L'exemple suivant montre comment utiliser la classe List. Remarquez que, contrairement à la classe Array, les éléments peuvent être insérés au milieu de la liste. Cet exemple restreint les éléments de la liste, qui doivent être des chaînes.
System.Collections.Generic.List jours = new System.Collections.Generic.List(); jours.Add("lundi"); jours.Add("mardi"); jours.Add("mercredi"); jours.Add("vendredi"); jours.Add("samedi"); jours.Add("dimanche"); jours.Insert(4, "jeudi"); foreach (string jour in jours) { label.text += jour; }