string[][] Tablero = new string[3][3];
Ich brauche eine 3x3-Array-Anordnung, um Informationen zu speichern. Wie deklariere ich das in C #?
c#
arrays
multidimensional-array
jagged-arrays
array-initialization
Olivier Rogier
quelle
quelle
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"} };
quelle
var tablero = new string[3,3];
wenn Sie C # 3 oder höher verwendennew 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"} };
quelle
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
quelle
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]; }
quelle
Es gibt zwei Arten von mehrdimensionalen Arrays in C #, genannt
Multidimensional
undJagged
.Für mehrdimensionale können Sie durch:
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
quelle
string[][] jagged = { new[] { "a", "b", "c" }, new[] { "d", "e", "f" }, new[] { "g", "h", "i" } };
odervar 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
quelle
string[,] Tablero = new string[3,3];
quelle
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] };
quelle
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"} };
quelle
Wenn Sie versuchen, ein mehrdimensionales Array zu erstellen, müssen Sie der Deklaration lediglich ein Komma hinzufügen:
string[,] tablero = new string[3,3].
quelle
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
quelle
Es gibt viele Beispiele für Arrays in C # arbeiten hier .
Ich hoffe das hilft.
Danke, Damian
quelle