string[][] Tablero = new string[3][3];
J'ai besoin d'un tableau 3x3 pour enregistrer les informations. Comment puis-je déclarer cela en C# ?
string[][] Tablero = new string[3][3];
J'ai besoin d'un tableau 3x3 pour enregistrer les informations. Comment puis-je déclarer cela en C# ?
C'est probablement ce que vous voulez :
string[,] Tablero = new string[3,3];
Vous obtiendrez ainsi un tableau de type matrice dans lequel toutes les lignes ont la même longueur.
Le tableau de votre exemple est un tableau dit réseau en dents de scie c'est-à-dire un tableau de tableaux dont les éléments peuvent être de tailles différentes. Un tableau irrégulier doit être créé d'une manière différente :
string[][] Tablero = new string[3][];
for (int i = 0; i < Tablero.GetLength(0); i++)
{
Tablero[i] = new string[3];
}
Vous pouvez également utiliser des initialisateurs pour remplir les éléments du tableau avec des données :
string[,] Tablero = new string[,]
{
{"1.1", "1.2", "1.3"},
{"2.1", "2.2", "2.3"},
{"3.1", "3.2", "3.3"}
};
Et dans le cas d'un réseau dentelé :
string[][] Tablero = new string[][]
{
new string[] {"1.1", "1.2"},
new string[] {"2.1", "2.2", "2.3", "2.4"},
new string[] {"3.1", "3.2", "3.3"}
};
Vous venez de déclarer un réseau irrégulier. Ce type de tableau peut avoir des tailles différentes pour toutes les dimensions. Par exemple :
string[][] jaggedStrings = {
new string[] {"x","y","z"},
new string[] {"x","y"},
new string[] {"x"}
};
Dans votre cas, vous avez besoin d'un tableau régulier. Voir les réponses ci-dessus. En savoir plus sur les tableaux en dents de scie
Il existe deux types de tableaux multidimensionnels en C#, appelés Multidimensional
y Jagged
.
Pour le multidimensionnel, vous pouvez utiliser :
string\[,\] multi = new string\[3, 3\];
Pour le jagged array, il faut écrire un peu plus de code :
string[][] jagged = new string[3][];
for (int i = 0; i < jagged.Length; i++)
{
jagged[i] = new string[3];
}
En bref, jagged array est à la fois plus rapide et a une syntaxe intuitive. Pour plus d'informations, voir : cette question de Stackoverflow
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.