string[][] Tablero = new string[3][3];
J'ai besoin d'un arrangement de matrice 3x3 pour enregistrer des informations. Comment puis-je déclarer cela en C #?
string[,] Tablero = new string[3,3];
Vous pouvez également l'instancier sur la même ligne avec la syntaxe d'initialisation de tableau, comme suit:
string[,] Tablero = new string[3, 3] {{"a","b","c"},
{"d","e","f"},
{"g","h","i"} };
Vous voulez probablement ceci:
string[,] Tablero = new string[3,3];
Cela vous créera un tableau de type matrice où toutes les lignes ont la même longueur.
Le tableau de votre exemple est ce qu'on appelle tableau dentelé , c'est-à-dire un tableau de tableaux dans lequel les éléments peuvent être de taille différente. Un tableau dentelé devrait ê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 initialiseurs 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 en cas de tableau déchiqueté:
string[][] Tablero = new string[][]
{
new string[] {"1.1","1.2", "1.3"},
new string[] {"2.1","2.2", "2.3"},
new string[] {"3.1", "3.2", "3.3"}
};
Vous venez de déclarer un tableau en dents de scie. Ce type de tableaux peut avoir différentes tailles 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. Plus sur les tableaux en dents de scie
Je suppose que vous recherchez ceci:
string[,] Tablero = new string[3,3];
La syntaxe d'un tableau en dents de scie est la suivante:
string[][] Tablero = new string[3][];
for (int ix = 0; ix < 3; ++ix) {
Tablero[ix] = new string[3];
}
Il existe 2 types de tableaux multidimensionnels en C #, appelés Multidimensional
et Jagged
.
Pour multidimensionnelle, vous pouvez par:
string [] multi = new string [3, 3];
Pour un tableau dentelé, vous devez é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 résumé, le tableau en dents de scie est à la fois plus rapide et sa syntaxe intuitive. Pour plus d'informations, voir: cette question Stackoverflow
essaye ça :
string[,] myArray = new string[3,3];
jetez un coup d'œil sur http://msdn.Microsoft.com/en-us/library/2yd9wwz4.aspx
string[,] Tablero = new string[3,3];
Lorsque vous essayez de créer un tableau multidimensionnel, il vous suffit d'ajouter une virgule à la déclaration, comme suit:
string[,] tablero = new string[3,3].
Un tableau 3x3 (multidimensionnel) peut également être initialisé (vous l'avez déjà déclaré) comme ceci:
string[,] Tablero = {
{ "a", "b", "c" },
{ "d", "e", "f" },
{ "g", "h", "i"}
};
string[][]
est pas un tableau à deux dimensions, c’est un tableau de tableaux (un tableau irrégulier ). C'est quelque chose de différent.
Pour déclarer un tableau à deux dimensions, utilisez cette syntaxe:
string[,] tablero = new string[3, 3];
Si vous voulez vraiment un tableau dentelé , vous devez l’initialiser comme ceci:
string[][] tablero = new string[][] { new string[3],
new string[3],
new string[3] };
vous pouvez également écrire le code ci-dessous.
Array lbl_array = Array.CreateInstance(typeof(string), i, j);
où 'i' est le nombre de lignes et 'j' le nombre de colonnes. en utilisant la méthode 'typeof (..)', vous pouvez choisir le type de votre tableau, c'est-à-dire int, chaîne, double
Il existe de nombreux exemples d'utilisation de tableaux en C # ici .
J'espère que ça aide.
Merci Damian