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);