Qu'est-ce que la méthode selectMany.ToArray()
? Est-ce une méthode intégrée dans C#
?Convertir un tableau à deux dimensions
J'ai besoin de convertir un tableau bidimensionnel en tableau unidimensionnel.
Qu'est-ce que la méthode selectMany.ToArray()
? Est-ce une méthode intégrée dans C#
?Convertir un tableau à deux dimensions
J'ai besoin de convertir un tableau bidimensionnel en tableau unidimensionnel.
SelectMany est un opérateur de projection, une méthode d'extension fournie par l'espace de noms System.Linq.
Il effectue une projection d'un à plusieurs éléments sur une séquence, ce qui vous permet de "niveler" les séquences résultantes en une seule.
Vous pouvez l'utiliser de cette manière:
int[][] twoDimensional = new int[][] {
new int[] {1, 2},
new int[] {3, 4},
new int[] {5, 6}
};
int [] flattened = twoDimensional.SelectMany(x=>x).ToArray();
Si vous voulez dire un tableau en dents de scie (T[][]
), SelectMany
est votre ami. Si, cependant, vous dire un rectangulaire tableau (T[,]
), alors vous pouvez simplement énumérer les données de date par foreach
- ou:
int[,] from = new int[,] {{1,2},{3,4},{5,6}};
int[] to = from.Cast<int>().ToArray();
Ce fil, http://stackoverflow.com/questions/5132397/fast-way-to-convert-a-two-dimensional-array-to-a-list-one-dimensional, va dans les détails de la méthode foreach et aussi quelques métriques de performance. – ShawnFeatherly
point pédant; ce n'est pas ce que j'appellerais un tableau bidimensionnel - c'est un tableau en dents de scie ... –
@MarcGravell N'est-ce pas un tableau 2D déchiqueté? Il est clair qu'un tableau irrégulier n'est pas un tableau rectangulaire ou un tableau "cube". Mais il a encore un certain degré de dimension. Dire que le tableau 2D ne spécifie pas jagged ou geometric/straight. – barlop
@barlop peut-être, mais finalement "le tableau" se référer ici à la matrice externe, qui est un vecteur de références; le caractère irrégulier indique clairement qu'il est plus complexe, et je suis d'accord avec le fait que, d'une certaine manière, "2D" pourrait être utilisé, par opposition à, disons, un int [] [] [] '. En fin de compte, nommer est difficile :) –