Verzweigte arrays initialisieren
Will ich array erstellen 10 * 10 * 10 in C# wie int[][][]
(nicht int[,,]
).
Kann ich den code schreiben:
int[][][] count = new int[10][][];
for (int i = 0; i < 10; i++) {
count[i] = new int[10][];
for (int j = 0; j < 10; j++)
count[i][j] = new int[10];
}
aber ich bin auf der Suche nach ein schöner Weg für Sie. Kann sein, dass so etwas wie:
int[][][] count = new int[10][10][10];
InformationsquelleAutor der Frage AndreyAkinshin | 2009-11-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
mithilfe
InformationsquelleAutor der Antwort dtb
Könnten Sie versuchen, diese:
Oder ohne explizite Werte:
InformationsquelleAutor der Antwort Mecaveli
Gibt es keinen eingebauten Weg, ein array zu erstellen, und erstellen Sie alle Elemente in es, so ist es nicht sogar nah an, wie einfach du es möchtest. Es wird so viel Arbeit wie es wirklich ist.
Können Sie eine Methode zum erstellen eines Arrays und alle Objekte, in:
Dann können Sie verwenden, um erstellen Sie eine drei-level-jagged-array:
InformationsquelleAutor der Antwort Guffa
Einem dreidimensionalen array klingt wie ein guter Fall für das erstellen Ihrer eigenen Klasse. Als objektorientierte kann so schön sein.
InformationsquelleAutor der Antwort JamesBrownIsDead
Gibt es keine "elegantere" Art und Weise als das schreiben der 2 for-Schleifen. Das ist, warum Sie genannt werden 'zackig', die Größen der einzelnen sub-Arrays kann variieren.
Doch damit bleibt die Frage: warum nicht verwenden Sie die [,,] - version?
InformationsquelleAutor der Antwort Henk Holterman
InformationsquelleAutor der Antwort Slai
Könnte ein Datensatz mit identischen datatables. Das könnte sich benehmen wie ein 3D-Objekt (xyz = Zeile, Spalte, Tabelle)... Aber du wirst am Ende mit etwas großem, egal was Sie tun; Sie haben noch zu berücksichtigen, für 1000 Elemente.
InformationsquelleAutor der Antwort tsilb
Mit ein wenig Hilfe von Linq
Es ist sicher nicht schön und wahrscheinlich auch nicht schnell, aber es ist ein one-liner.
InformationsquelleAutor der Antwort Bizniztime