LINQのおべんきょ
まずは普通に。
class Program { static void Main(string[] args) { var kvpList = new List<KeyValuePair<string, int>>() { new KeyValuePair<string,int>("Taro",27) , new KeyValuePair<string,int>("Jiro",25) , new KeyValuePair<string,int>("Saburo",23) }; var query = from item in kvpList where item.Value < 26 select item; foreach (var item in query) { Console.WriteLine(item); } Console.ReadKey(); } }
このコード中のクエリ式
var query = from item in kvpList where item.Value < 26 select item;
は、メソッド構文に直すと
var query = kvpList
.Where(item => item.Value < 26)
.Select(item => item)
;
と書ける。
さらに、Where、Selectメソッドのパラメータのラムダ式はFunc
var query = kvpList .Where(delegate(KeyValuePair<string, int> item) { return item.Value < 26; }) .Select(delegate(KeyValuePair<string, int> item) { return item; }) ;
と直せる。
こうやって見ると、クエリ式がいかにすっきりしてるか分かるね。