連載:[完全版]究極のC#プログラミングChapter15 LINQとクエリ式川俣 晶2010/03/17 |
|
|
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文による繰り返しでは実現できない。
「[完全版]究極のC#プログラミング」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|