kei0425tan’s blog

技術的なことを主に

Visual Basic(C#)のLINQについて

2015/11課会資料

Visual Basic(C#)のLINQについて

Visual Basic 2008(C# 3.0)からLINQ(Language INtegrated Query)が追加されましたが、あまり活用している人をみたことありません。なので便利に使う方法を紹介します。

そもそも、LINQとは?

簡単にいうと.netでmap reduceを行う仕組み。基本は以下が対応しています。
Map → Select(写像変換)
Filter → Where(フィルタリング)
Sort → Order by(ソート)
Reduce → Aggregate(畳み込み)
コレクションに対し、上記処理を逐次的に適用し、好きな形に変換できます。
上記を利用することにより、今までforで回していたものが、簡潔に記述できるようになります。

例1:クラスのリストを辞書(キーx.key,値x)に変換
list.toDictionary(x => x.key)
例2:数値のリストから10以上をピックアップして文字列に,セパレータで変換。
String.Join(“,”, list.Where(x => x > 10).Select(x => x.ToString()))

知っていると簡潔に記述ができ、バグも減るのでどんどん活用しましょう。
SelectとかWhereとかSQLとキーワードが同じため、DBがらみと勘違いしやすいですが、DBとは無関係に利用できます。
LL言語には大抵似た機能がありますが、LINQは型チェックを事前にしてくれることにより、よりバグの少ないコーディングが可能になります。