連載:[完全版]究極のC#プログラミング

Chapter15 LINQとクエリ式

川俣 晶
2010/03/17
Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

15.4 なぜLINQなのか?

 LINQを使って記述できる処理は、LINQを使用しなくても書くことができる。これまでのように、foreach文で繰り返しを行えばよい。

それにもかかわらず、LINQを使う利点をマイクロソフトの文書は、次のように説明している(「LINQ To Objects」(http://msdn.microsoft.com/ja-jp/library/bb397919.aspx)より引用)。

 1. 簡潔で読みやすい(特に複数の条件をフィルタ処理する場合)。

 2. 強力なフィルタ処理、並べ替え、およびグループ化機能を最小限のアプリケーションコードで実現できる。

 3. ほとんど変更せずに、ほかのデータソースに移植できる

 ここでは、さらに2つの利点を補足的に追加しておこう。

 まず、簡潔であることは、読みやすさだけでなく、プログラマーが注意を払うべき要素が減ったことを意味する。LINQには明示的に「繰り返し」を指示する構文が存在しない。これは、「データの集まり」を対象に処理を行うことが前提であるため、つねに繰り返されることが決まっているためである。つまり、正しく繰り返しを行うことに注意を払う必要がない。foreach文を使えば繰り返す回数を間違う心配はないが、繰り返す文の範囲など注意する点はいくつかある。それらに注意を払う必要がなくなるわけである。

 もう1つの利点は、将来の可能性である。将来に目を向けると、C# 4.0ではさらに興味深い技術が導入される見込みである。それは、「Parallel LINQ」(Parallel Language Integrated Query:PLINQ)と呼ばれるものである。これはLINQの発展形といえるもので、クエリを並行して実行できる。つまり、複数のコアを内蔵するCPUやマルチプロセッサのシステムでは、クエリの負荷を複数コアに分散できるのである。このような分散は、単純なforeach文による繰り返しでは実現できない。


 INDEX
  [完全版]究極のC#プログラミング
  Chapter15 LINQとクエリ式
    1.15.1 LINQの面白さ
    2.15.2 LINQとは何か?
    3.15.3 「値の集まり」に対する演算
  4.15.4 なぜLINQなのか?
    5.15.5 最も基本的なLINQ
    6.15.6 LINQの本質は列挙
    7.15.7 LINQを使ううえでの注意点
    8.15.8 クエリ結果を加工する
    9.15.9 複数のソースからクエリする
    10.15.10 条件で絞り込む
    11.15.11 一部項目のみselectする
    12.15.12 シンプルなソート
    13.15.13 クエリの接続
    14.15.14 クエリ結果のグループ化
    15.15.15 複数ソースを関連付けるjoin句
    16.15.16 from句とjoin句のパフォーマンス
    17.15.17 join句のグループ化結合
    18.15.18 join句の左外部結合
    19.15.19 単独で使うDefaultIfEmptyメソッド
    20.15.20 内部列挙を伴うfrom句の二重使用
    21.15.21 let句
    22.15.22 クエリのインスタンス化
    23.15.23 クエリ結果の個数を得る
    24.15.24 Anyメソッドと存在チェック/【C#olumn】クエリ式のデバッグテクニック
    25.15.25 まとめ/【C#olumn】LINQの難しさ/【Exercise】練習問題
 
インデックス・ページヘ  「[完全版]究極のC#プログラミング」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間