LINQ

LINQ (Language Integrated Query)はC# ver3.0 から利用できる新機能で、配列といったデータに対するありがちな処理を SQL に類似した構文式を用いて実装する事が可能になります。
更新日 2016-02-13

概要

LINQ (Language Integrated Query) はC# ver3.0 に実装されたデータ処理の新しい手法です。データベースと SQL の経験があれば想像しやすいのですが、つまりプログラム中の配列やコレクションに対するありがちな処理(ソートや抽出)に ついて、C# の言語体型を維持しつつSQL 文に似た記述が可能になりました。
一見C# らしからぬ記述法も、SQL に馴染みのある人にとっては好都合。あまり悩まず使えるはずです。

実装例

ファイル一覧のソート

orderby ステートメント を使ってソートを行います。
DirectoryInfo dir = new DirectoryInfo( "d:\\" );
FileInfo[] files = dir.GetFiles();

// 更新日時順でソートして取り出す
var viewFiles = from p in files
				orderby p.LastWriteTime
				select p;

foreach (var file in viewFiles)
{
    this.m_textBox_Output.Text += file.Name + "\r\n";
}
var キーワードを用います。p は対象配列(ここではfiles) の要素を意味します。from p in コレクション や select p はお約束です。

配列から抽出

where ステートメントを使えば条件判定も容易です。ただし判定部分(where 節)はC# でtrue を返す事。
DirectoryInfo dir = new DirectoryInfo( "d:\\" );
FileInfo[] files = dir.GetFiles();

// ファイル名がFX- で始まるケースを抽出
var viewFiles = from p in files 
				where p.Name.StartsWith("FX-")
				select p;

foreach (var file in viewFiles)
{
    this.m_textBox_Output.Text += file.Name + "\r\n";
}