連載:[完全版]究極のC#プログラミングChapter15 LINQとクエリ式川俣 晶2010/03/17 |
|
本記事は、(株)技術評論社が発行する書籍『[完全版]究極のC#プログラミング ― 新スタイルによる実践的コーディング』から、許可を得て転載しています。 手元でまとめて読みたい方は、ぜひ書店などにてお買い求めください。 【注意】本記事は、書籍の内容を改変することなく、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。 |
15.1 LINQの面白さ
LINQ(リンク)の話を始める前に、まずコード例を1つ紹介しよう。筆者がLINQについて調べているときに、特に面白いと思ったMSDNのサンプルだ。
方法:ディレクトリツリーで重複するファイルを問い合わせる(LINQ)
http://msdn.microsoft.com/ja-jp/library/bb546133.aspx
ディレクトリのツリーの中では、異なるディレクトリに同じファイル名を持つファイルが存在することがある。それをすべてリストアップするサンプルである。上記のページのサンプルコードは多機能すぎてLINQビギナーが見てもコードの迷宮に飲まれてしまう可能性があるので、エッセンスだけ残して周辺を落としたものを作成した(リスト15.1参照)。
さて、ここで「重複するファイルを問い合わせる」というクエリは「var queryDup Names = ……」の行から全6行の1つのクエリ式だけで実現されている。同じ機能のコードを、LINQ抜きでは何行で書けるか考えてみていただきたい。
| |
リスト15.1 重複するファイルを見つける |
| |
リスト15.1の実行結果例 |
まだここではこのクエリを理解することはできないだろうが、それでいい。込み入った処理がたった数行のクエリ式で実現できたことだけ把握してほしい。ここから始まるのは、それを自分で行うための解説である。
「[完全版]究極の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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|