2

まず最初に、Google 経由でこれを見つけることができるはずだと思っているので申し訳ありませんが、検索用語が一般的すぎるため (または、何を探すべきかわからないため)、おそらく見つけることができないようです。 .

与えられた:

int[] numbers = {0, 1, 2, 3, 4, 5};

var selectedNumbers = from n in numbers
                      where n > 2
                      select n;

複数の要素が選択されている場合、var とは何ですか?

明確にするために:どのオブジェクトタイプとして扱うべきですか?ある種のコレクションを暗示する複数の要素があります(そして、特定のタイプのインターフェースとして扱われていると思います...?)が、正直なところがわからないので、コードで適切に使用できます.

あるいは(単純な好奇心のために最初の部分を知りたいのですが)、それを通常のコレクションに変換する良い方法はありList<int>ますか?

4

4 に答える 4

2

簡単:IEnumerable<int>

実際には、Visual Studio で変数の上にマウスを置くと、ツールチップに変数の型が表示されます。

于 2012-08-21T13:56:58.220 に答える
2

ですIEnumerable<int>。次のコードは同等です。

IEnumerable<int> selectedNumbers =
     from n in numbers
     where n > 2
     select n;

リストに変換するには、 を呼び出しますToList()

List<int> list = selectedNumbers.ToList();

両方の操作を 1 行で行うこともできます。

List<int> list = numbers.Where(n => n > 2).ToList();
于 2012-08-21T13:57:05.353 に答える
2

from、where、および select は IEnumerable 拡張メソッドの単なる構文糖衣であるため、varは IEnumerable です。selectedNumbers列挙型を列挙すると、各列挙の数値に対してクエリが適用されることに注意してください。ToListメソッドを使用すると、クエリの結果を含むリストが取得されます。

于 2012-08-21T14:01:04.523 に答える
1

になりますIEnumerable<int>

リストに変換するには、ToList()selectedNumbers で拡張メソッドを使用するだけです。

List<int> listOfNumbers = selectedNumbers.ToList();
于 2012-08-21T13:57:26.493 に答える