systembankスタッフのブログ

システムバンクスタッフのブログです。

LINQの話 その6

C#でのLINQの意味

C#のバージョン3.0でLINQとクエリ式(演算子)が追加されたことで、C#の進む方向に大きく与えたように思っております。

このとき同時に追加されたラムダ式や拡張メソッド、ひとつ前のバージョン2.0で追加された匿名メソッドやイテレーターも全てLINQを実現するために準備していたことなんだろうかと、今になって思いなおしています。

それ以前から仕事でC#を使っていましたがC# 3.0 と.NET Framework3.5がリリースされたとき、それぞれを別の事柄として理解はしていましたが未熟だったこともあり組み合わせて活用することができませんでした。

そのほんの少しあと、3.5SP1で.NET Frameworkライブラリに組み込まれたADO.NET Entity Frameworkの完成によってインピーダンスミスマッチングをなくそうという試みを実現し、言語とライブラリの完成度を飛躍的に高めたときだったんだなと思います。(でもこのバージョンのEntity Frameworkはどうしても使おうという気になれなかったんですが...、今のバージョンは良いです!、積極的に使いたいんですが社内のレガシー資産に阻まれて使う機会があまりないのが残念)。

この時の大きな言語拡張を経ることでC#が従来のオブジェクト指向言語でありながら関数型プログラミングを志向することもできるといった面白い特徴を備えることができ単価ないかと勝手に思っています。

一旦LINQの話はここまでにして、次回はC#のバージョンを少し進めて別の話をしてみようと思います。