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