Initialisation des tableaux dentelés
Je veux créer la matrice 10 * 10 * 10 en C# comme int[][][]
(pas int[,,]
).
Je peux écrire du code:
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];
}
mais je suis à la recherche d'une plus belle manière. Peut-être quelque chose comme ça:
int[][][] count = new int[10][10][10];
source d'informationauteur AndreyAkinshin
Vous devez vous connecter pour publier un commentaire.
utilisant
Vous pouvez essayer ceci:
Ou sans valeurs explicites:
Il n'est pas construit de façon à créer un tableau et de créer tous les éléments, de sorte qu'il ne sera pas même à proximité de comment simple que vous le souhaitez. Ça va être beaucoup de travail tel qu'il est réellement.
Vous pouvez faire une méthode pour créer un tableau et tous les objets qu'il:
Ensuite, vous pouvez l'utiliser pour créer un en trois niveau de tableau en escalier:
Trois dimensions tableau sonne comme une bonne affaire pour la création de votre propre Classe. Étant orientée objet peut être belle.
Il n'y a pas plus élégant chemin de l'écriture de l'2 pour des boucles. C'est pourquoi ils sont appelés "irréguliers", la taille de chaque sous-réseau peut varier.
Mais qui laisse la question: pourquoi ne pas utiliser les [,,] version?
Vous pouvez utiliser un jeu de données avec les mêmes tables de données. Qui pourrait se comporter comme un objet 3D (xyz = de ligne, de colonne de la table)... Mais vous allez finir avec quelque chose de grand n'importe ce que vous faites; vous avez encore de compte pour 1000 points.
Avec un peu d'aide de Linq
Il n'en est pas joli et probablement pas rapide, mais c'est un one-liner.