LINQの話 その1
はじめに
C#を使っているならやっぱりLINQを覚えておくといろいろとプログラムが楽になりますよね。プログラム内でデータを操作するのが大層楽になる(コード量が減る = バグも減る)のできっちり使いこなしておきたいですね。
VisualStudio2008の頃から使えるのでもう随分と前から使えるのですがあまりつかわれていないのかなって思っています。
また、この記事は社内でのプログラミング教育の抜粋です、プログラミングを覚えてみようと考えている方の参考になれば幸いです。
LINQって何
System.Linq名前空間にあるEnumerableクラス、Queryableクラスが提供しているデータの集合を操作するメソッド群です。
なにかデータ集合に対して操作する場合、データを抜粋や抽出したりすると思います。
C#の拡張メソッドという機構を利用していろいろな場面でデータ操作を簡潔にできるように実装されています。
簡単な例
例えばlong配列を加算集計するプログラムを普通に書いてみると
long[] values = {1, 2, 3, 4, 5}; long sum = 0; for(int i = 0; i < values.Length; i++) { sum += values[i]; } Debug.WriteLine(sum);
少し書き方を変えてもこんな感じ
long[] values = {1, 2, 3, 4, 5}; long sum = 0; foreach(long value in values) { sum += value; } Debug.WriteLine(sum);
LINQを使ってこれを置き換えるとこんな感じ
long[] values = {1, 2, 3, 4, 5}; long sum = values.Sum();
だいぶ簡潔に記述することができます。 集合に対する繰り返し処理やその操作がLINQが提供するメソッド内で全て行われるので自分の記述によるバグが減らせる感覚を持っていただけたでしょう。
次回
次回はもう少しだけ複雑な例を挙げてみようと思います。