string[][] Tablero = new string[3][3];
Ho bisogno di disporre di un array 3x3 per salvare le informazioni. Come posso dichiararlo in C#?Come posso dichiarare un array di stringhe bidimensionale?
string[][] Tablero = new string[3][3];
Ho bisogno di disporre di un array 3x3 per salvare le informazioni. Come posso dichiararlo in C#?Come posso dichiarare un array di stringhe bidimensionale?
string[,] Tablero = new string[3,3];
È possibile anche un'istanza nella stessa linea con la sintassi di inizializzazione array come segue:
string[,] Tablero = new string[3, 3] {{"a","b","c"},
{"d","e","f"},
{"g","h","i"} };
Oppure 'var tablero = nuova stringa [3,3];' se stai usando C# 3 o successivo – bdukes
Se si utilizza la sintassi di inizializzatore dell'array non è necessario fornire i limiti (cioè si può semplicemente scrivere 'nuova stringa [,] ') – bdukes
Non è necessario scrivere' nuova stringa [,] 'a tutti ...' stringa [,] Tablero = {{"a", "b", "c"}, {"d "," e "," f "}, {" g "," h "," i "}}' –
provare questo:
string[,] myArray = new string[3,3];
uno sguardo su http://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx
È probabilmente lo vuoi:
string[,] Tablero = new string[3,3];
Questo creerà un array simile alla matrice in cui tutte le righe hanno la stessa lunghezza.
L'array nel campione è un cosiddetto jagged array, ovvero una matrice di matrici in cui gli elementi possono essere di dimensioni diverse. Una matrice irregolare dovrebbe essere creato in un modo diverso:
string[][] Tablero = new string[3][];
for (int i = 0; i < Tablero.GetLength(0); i++)
{
Tablero[i] = new string[3];
}
È anche possibile utilizzare inizializzatori per riempire gli elementi della matrice con i dati:
string[,] Tablero = new string[,]
{
{"1.1","1.2", "1.3"},
{"2.1","2.2", "2.3"},
{"3.1", "3.2", "3.3"}
};
E in caso di matrice irregolare:
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"}
};
presumo che stai cercando questo:
string[,] Tablero = new string[3,3];
La sintassi per una matrice irregolare è:
string[][] Tablero = new string[3][];
for (int ix = 0; ix < 3; ++ix) {
Tablero[ix] = new string[3];
}
string[,] Tablero = new string[3,3];
Quando si sta tentando di creare un array multi-dimensionale tutto quello che dovete fare è aggiungere una virgola alla dichiarazione in questo modo:
string[,] tablero = new string[3,3].
Ci sono molti esempi su come lavorare con gli array in C# here.
Spero che questo aiuti.
Grazie, Damian
string[][]
è non una matrice bidimensionale, è un array di array (un frastagliata matrice). È qualcosa di diverso.
Per dichiarare una matrice bidimensionale, usando la seguente sintassi:
string[,] tablero = new string[3, 3];
Se si vuole veramente un jagged array, è necessario inizializzare in questo modo:
string[][] tablero = new string[][] { new string[3],
new string[3],
new string[3] };
Hai appena dichiarata frastagliata array. Questo tipo di array può avere dimensioni diverse per tutte le dimensioni. Ad esempio:
string[][] jaggedStrings = {
new string[] {"x","y","z"},
new string[] {"x","y"},
new string[] {"x"}
};
Nel tuo caso hai bisogno di un array regolare. Vedi le risposte sopra. More about jagged arrays
Un 3x3 (multidimensionale) array può anche essere inizializzato (si è già dichiarato) in questo modo:
string[,] Tablero = {
{ "a", "b", "c" },
{ "d", "e", "f" },
{ "g", "h", "i"}
};
-1: questo è lo stesso di http://stackoverflow.com/a/3814169/76337 e http://stackoverflow.com/a/3814164/76337 –
@JohnSaunders Non riesco a vedere. Lasciare l'intero tipo ignorato sul rh è qualcosa di diverso. – nawfal
No, è esattamente lo stesso. –
Ci sono 2 tipi di array multidimensionali in C#, chiamato Multidimensional
e Jagged
.
Per multidimensionale è possibile da:
string[,] multi = new string[3, 3];
Per matrice irregolare si deve scrivere un po 'più di codice:
string[][] jagged = new string[3][];
for (int i = 0; i < jagged.Length; i++)
{
jagged[i] = new string[3];
}
Insomma matrice irregolare è sia più veloce e ha la sintassi intuitiva. Per maggiori informazioni vedi: this Stackoverflow question
Nel caso frastagliato puoi inizializzarlo direttamente come 'string [] [] jagged = {new [] {" a ", "b", "c"}, nuovo [] {"d", "e", "f"}, nuovo [] {"g", "h", "i"}}; '** o ** 'var jagged = new [] {new [] {" a "," b "," c "}, nuovo [] {" d "," e "," f "}, nuovo [] {" g ", "h", "i"}}; ' – nawfal
puoi anche scrivere il codice qui sotto.
Array lbl_array = Array.CreateInstance(typeof(string), i, j);
dove "i" è il numero di righe e "j" è il numero di colonne. usando il metodo 'typeof (..)' puoi scegliere il tipo di array cioè int, string, double
La documentazione mostra chiaramente come farlo: http://msdn.microsoft.com/en-us /library/9b9dty7d.aspx –
Vedere anche [c-how-to-initialize-an-array-of-2d-array] (http://stackoverflow.com/questions/7775458/c-how-to-initialize-an -array-of-2d-array) – nawfal
Si noti che c'è una differenza tra il codice OP [] [] (struttura ad array frastagliata) e la risposta accettata [,] (multidimensionale), in base al link sopra. – amalgamate