J'ai juste remarqué qu'un tableau multidimensionnel en C#, ne pas mettre en oeuvre IEnumerable<T>
, alors qu'il n'en œuvre IEnumerable
. Pour unique dimensions des tableaux, à la fois IEnumerable<T>
et IEnumerable
sont mis en œuvre.
Pourquoi cette différence? Si un tableau multidimensionnel est - IEnumerable
, sûrement, il devrait également mettre en œuvre la version générique? Je l'ai remarqué parce que j'ai essayé d'utiliser une méthode d'Extension sur un tableau multidimensionnel, qui ne parvient pas, sauf si vous utilisez Cast<T>
ou similaires; donc, je peux certainement voir l'un argument pour rendre les tableaux multidimensionnels mettre en oeuvre IEnumerable<T>
.
Pour préciser ma question dans le code, j'attendrais le code suivant pour imprimer true
quatre fois, alors qu'il fait des tirages true
, false
, true
, true
:
int[] singleDimensionArray = new int[10];
int[,] multiDimensional = new int[10, 10];
Debug.WriteLine(singleDimensionArray is IEnumerable<int>);
Debug.WriteLine(multiDimensional is IEnumerable<int>);
Debug.WriteLine(singleDimensionArray is IEnumerable);
Debug.WriteLine(multiDimensional is IEnumerable);