web-dev-qa-db-fra.com

Comment déclarer un tableau de chaînes à deux dimensions?

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 #?

74
delete
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"} };
105
explorer

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"}
};
51
Dirk Vollmar

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

13
Bashir Magomedov

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];
        }
10
Hans Passant

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

9
Lev

essaye ça :

string[,] myArray = new string[3,3];

jetez un coup d'œil sur http://msdn.Microsoft.com/en-us/library/2yd9wwz4.aspx

8
anishMarokey
string[,] Tablero = new string[3,3];
5
Chris Almond

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].
5
hav2play21

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"} 
                     };
5
nawfal

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] };
5
Heinzi

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

3
Stavros Afxentis

Il existe de nombreux exemples d'utilisation de tableaux en C # ici .

J'espère que ça aide.

Merci Damian

1
Damian Schenkelman