1

次の 2 つの方法で整数配列を宣言しています。

Array numbers = Array.CreateInstance(typeof(int), 10);
int[] numbers1 = new int[6];

変数numbersnumbers1両方が似ていると思いました。しかし、これら 2 つのインテリセンスは異なります。のオプションが増えましたnumbers1

なぜそうなのですか?

4

1 に答える 1

2

違いは、;と同様に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 です。

于 2013-02-15T13:34:15.370 に答える