C# これなら分かる Linq 基本編4-2. メソッド形式と、メ ソッド形式を使う場合

VisualStudio2016にて、新しくプロジェクトを作成します。
ウィンドウにボタンを一つ配置して、下記のコードを記載。

動作
配列 numbers の中から、条件に合う数値のみを抽出します。
抽出された値を型推論に基づく匿名オブジェクトを活用し、必要な情報だけを絞り込んで結果を得、MessageBoxに表示していきます。
クエリ式は、LINQ と呼ばれる機能を実現するために C# に用意された機能ですが、実体はクラス ライブラリに存在します。そこで、クエリ式を使わずに、直接このクラス ライブラリを呼び出すこともできます。これをメソッド形式と呼びます。

比較
Linqクエリ式:
var q = from n in persons select new { n.Name, n.Age };
Selectメソッド:
var q = persons.Select((n) => new { n.Name, n.Age });

解説
通常、匿名型はクエリ式の select 句で使用され、ソース シーケンスの各オブジェクトからプロパティのサブセットを返します。
匿名オブジェクト (下記の new { n.Name, n.Age }) を作成しています。
匿名型オブジェクトの例
匿名型はこのように作る事ができます。
//var v = new { Amount = 108, Message = “Hello” };
これをLinq SELECT部分で抽出し、新しく作成していきます。
上記で作成された匿名型変数vはIEnumerableインターフェースを実装し、foreachでの処理が可能となる。
IEnumerableの特徴
foreachでの処理可能
自作コレクションをつくることができる