次の 2 つの方法で整数配列を宣言しています。
Array numbers = Array.CreateInstance(typeof(int), 10);
int[] numbers1 = new int[6];
変数numbers
とnumbers1
両方が似ていると思いました。しかし、これら 2 つのインテリセンスは異なります。のオプションが増えましたnumbers1
。
なぜそうなのですか?
違いは、;と同様にnumbers1
実装されていることです。のみを実装します。IEnumerable<int>
IEnumerable
numbers
IEnumerable
(基本的に、それがシーケンスであることは知っていますが、それnumbers
がどのタイプのシーケンスであるかはわかりません。それがs のシーケンスでnumbers1
あることは知っています。)int
using System.Linq
プログラムの先頭に行があるため、 on で使用する LINQ 拡張メソッドが多数numbers1
ありますが、 onはわずかnumbers
です。
(LINQ では、配列やその他のシーケンスをクエリするためのメソッドが定義されています。シーケンスに含まれるオブジェクトの型がわかっている場合にのみ、シーケンスに対して興味深いクエリを作成できるため、多くのメソッドは、単純なシーケンスではなく、シーケンスに対してのみ使用できます。)IEnumerable<something>
IEnumerable
を取り出すusing System.Linq
と、その 2 つでまったく同じオプションが得られます。
あなた自身が の拡張メソッドをたくさん定義している可能性がありますがIEnumerable<int>
、それはおそらく LINQ です。