そろそろ、LinqBridgeについてなんか書いとくか。
LinqBridgeに関する記事が日本語で皆無なので書いておく。
1.LinqBridgeとは
.Net Framework3.5で導入されたLinqを下位環境(.NET 2.0)で利用可能にするライブラリ
ただし、VisualStudio2008でのコンパイルする必要がある。
2.なにができるのか?
拡張メソッドが利用できるようになります。
それを利用してLinqToObjectが利用できるようになります。
たとえばこんな構文
var numList = new[] {1,2,3,4, 5, 6, 7, 8, 9};
var result = numList.Where(n => n > 5);
foreach (var i in result)
{
Console.WriteLine(i);
//6,7,8,9を出力
}
3.なぜ、LinqToObjectが利用できるのか?
C#3.0で文法がいくつか拡張されました。(ex.自動プロパティ,ラムダ式)
これらは、文法上の拡張なのでVisalStudio2008で.Net2.0のプロジェクトでも
普通に使うことができます。
ただし、拡張メソッドに関しては拡張メソッド属性(ExtensionAttribute)を
用いて実装されています。この属性が.NET 3.5のライブラリにあるため
利用できません。
LinqBridgeはこの属性を2.0上で実装しているので拡張メソッドが利用できるようになります。
また、System.Linqの拡張メソッドも網羅しているので、LinqToObjectであれば
普通に利用できるようになります。
この記事を書いたときには、Googleで探してもみつからないのでURL
http://www.albahari.com/nutshell/extras.html