string[][] Tablero = new string[3][3];
Ich brauche eine 3x3-Array-Anordnung, um Informationen zu speichern. Wie deklariere ich das in C #?
string[][] Tablero = new string[3][3];
Ich brauche eine 3x3-Array-Anordnung, um Informationen zu speichern. Wie deklariere ich das in C #?
Antworten:
string[,] Tablero = new string[3,3];
Sie können es auch in derselben Zeile mit der Array-Initialisierungssyntax wie folgt instanziieren:
string[,] Tablero = new string[3, 3] {{"a","b","c"},
{"d","e","f"},
{"g","h","i"} };
var tablero = new string[3,3];
wenn Sie C # 3 oder höher verwenden
new string[,]
new string[,]
...string [,] Tablero = {{"a","b","c"}, {"d","e","f"}, {"g","h","i"} }
Sie wollen wahrscheinlich das:
string[,] Tablero = new string[3,3];
Dadurch erhalten Sie ein matrixartiges Array, in dem alle Zeilen dieselbe Länge haben.
Das Array in Ihrem Beispiel ist ein sogenanntes gezacktes Array , dh ein Array von Arrays, bei denen die Elemente unterschiedlich groß sein können. Ein gezacktes Array müsste auf andere Weise erstellt werden:
string[][] Tablero = new string[3][];
for (int i = 0; i < Tablero.GetLength(0); i++)
{
Tablero[i] = new string[3];
}
Sie können auch Initialisierer verwenden, um die Array-Elemente mit Daten zu füllen:
string[,] Tablero = new string[,]
{
{"1.1","1.2", "1.3"},
{"2.1","2.2", "2.3"},
{"3.1", "3.2", "3.3"}
};
Und im Falle eines gezackten Arrays:
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"}
};
Sie haben gerade ein gezacktes Array deklariert. Solche Arrays können für alle Dimensionen unterschiedliche Größen haben. Zum Beispiel:
string[][] jaggedStrings = {
new string[] {"x","y","z"},
new string[] {"x","y"},
new string[] {"x"}
};
In Ihrem Fall benötigen Sie ein reguläres Array. Siehe Antworten oben. Mehr über gezackte Arrays
Ich nehme an, Sie suchen danach:
string[,] Tablero = new string[3,3];
Die Syntax für ein gezacktes Array lautet:
string[][] Tablero = new string[3][];
for (int ix = 0; ix < 3; ++ix) {
Tablero[ix] = new string[3];
}
Es gibt zwei Arten von mehrdimensionalen Arrays in C #, genannt Multidimensional
und Jagged
.
Für mehrdimensionale können Sie durch:
string [,] multi = neuer String [3, 3];
Für gezackte Arrays müssen Sie etwas mehr Code schreiben:
string[][] jagged = new string[3][];
for (int i = 0; i < jagged.Length; i++)
{
jagged[i] = new string[3];
}
Kurz gesagt, ein gezacktes Array ist schneller und hat eine intuitive Syntax. Weitere Informationen finden Sie unter: Diese Stackoverflow-Frage
string[][] jagged = { new[] { "a", "b", "c" }, new[] { "d", "e", "f" }, new[] { "g", "h", "i" } };
oder var jagged = new[] { new[] { "a", "b", "c" }, new[] { "d", "e", "f" }, new[] { "g", "h", "i" } };
Versuche dies :
string[,] myArray = new string[3,3];
Schauen Sie sich http://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx an
string[,] Tablero = new string[3,3];
string[][]
ist kein zweidimensionales Array, sondern ein Array von Arrays (ein gezacktes Array ). Das ist etwas anderes.
Verwenden Sie diese Syntax, um ein zweidimensionales Array zu deklarieren:
string[,] tablero = new string[3, 3];
Wenn Sie wirklich ein gezacktes Array möchten , müssen Sie es wie folgt initialisieren:
string[][] tablero = new string[][] { new string[3],
new string[3],
new string[3] };
Ein 3x3 (mehrdimensionales) Array kann auch wie folgt initialisiert werden (Sie haben es bereits deklariert):
string[,] Tablero = {
{ "a", "b", "c" },
{ "d", "e", "f" },
{ "g", "h", "i"}
};
Wenn Sie versuchen, ein mehrdimensionales Array zu erstellen, müssen Sie der Deklaration lediglich ein Komma hinzufügen:
string[,] tablero = new string[3,3].
Sie können auch den folgenden Code schreiben.
Array lbl_array = Array.CreateInstance(typeof(string), i, j);
Dabei ist 'i' die Anzahl der Zeilen und 'j' die Anzahl der Spalten. Mit der Methode 'typeof (..)' können Sie den Typ Ihres Arrays auswählen, dh int, string, double