Life Goes On

まあまあだけど楽しんでる方です

LINQテクノロジ入門

ちょっと勉強してるのですが、この本、いいです。
僕みたいに初めて C# を触るド素人でも手を動かして確かめられるように、懇切丁寧な手順が書いてあるし、そうかと思うと、一部では裏の仕組みにまで踏み込んで、なぜそういう動作になるのか詳しく説明されています。

一番感心したのはラムダ式の展開についての解説。
Where メソッドにラムダ式を渡すと、式ツリーを経由して対応する SQL に変換してくれるわけですが、同じ匿名関数だからといって匿名メソッド(デリゲート)を渡してしまうと、式ツリーに変換できないので、where 句の無い SQL が実行されてしまう。またラムダ式で渡しても、IEnumerable 型だと解釈されると、やはり変換されない。

言われてみれば当たり前なのですが、ラムダ式は何かの Syntax Sugar ではなく、新しい言語仕様なんですね。
こういう強力な仕様を後から付け足してしまうあたり、何というか .NET は流石だと思いました。(節操が無いと言われるわけだ)