LINQ
LINQ (C# によるプログラミング入門)
http://ufcpp.net/study/csharp/sp3_linq.html
概要、LINQとは、LINQの全体像、クエリ式
IEnumeable を実装するコレクションクラスに対するもの(LINQ to Object)や、 XML に対するもの(LINQ to XML)、 それに、リレーショナルデータベースサーバに対する SQL クエリを生成するもの(LINQ to SQL)などがあります
それまでは、画像や音声などを含めた多種多様なデータへの問い合わせをしようとすると、SQLとOOP言語だけでは簡単に実現できなかった。
そこで、データベース問い合わせとOOP言語を統合した(Language Integrated Query)。
C# や VB.NET 内に SQL 風のクエリ式を記述できるような言語構文。
select, from, where, order by
LINQの全体像
http://ufcpp.net/study/csharp/fig/linq01.png
クエリ式
var list1 = from p in list where p.id <= 15 orderby p.id select new { p.FamilyName, p.FirstName };
コンパイラはこうしたクエリ式を拡張メソッド(List, Whereメソッドなど)の呼び出しに変換する。
コンパイラはList, Whereなどのメソッドを実装してるかだけを見る。インターフェースを実装してるかは見ない(ダックタイピング)。