IEnumerable<T>C# の多次元配列は を実装しているのに、 を実装していないことに気付きましたIEnumerable。1 次元配列の場合、IEnumerable<T>との両方IEnumerableが実装されています。
この違いはなぜですか?多次元配列が の場合IEnumerable、ジェネリック バージョンも実装する必要がありますか? 多次元配列で拡張メソッドを使用しようとしたため、これに気付きましたCast<T>。したがって、多次元配列を実装するための引数が確実にわかりますIEnumerable<T>。
コードで私の質問を明確にするために、次のコードがtrue実際にはtrue, false, true, を出力している間に、4 回出力されると予想し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);