C# 3.0からLinqがサポートされるようになりました。
Linqについては、あちこちで話題になっているので
わざわざここで書く必要はないのですが、備忘録ということで
メモしていきます。
今回は、もっとも基本的なクエリの発行の仕方。
基本的に、Linqでクエリを行う場合は以下の手順を踏む必要があります。
- データソースを取得
- クエリを構築
- クエリを実行
そのままですね。
また、クエリを行えるオブジェクトは以下のものとなります。
IEnumerableをサポートしているオブジェクト
実は、ジェネリックではないIEnumerableの場合もクエリ可能ですが
それは次回に書きます。
で、以下サンプルです。
// vim:set ts=4 sw=4 et ws is nowrap ft=cs: using System; using System.Linq; namespace Gsf.Samples.Tmp{ class LinqSample1{ static void Main(){ string strings = new string{"hoge", "hehe", "fuga"}; // // クエリの構築. // // 配列は、IEnumerableをサポートしているのでクエリ可能。 // (.NET Framework 2.0以降) // var query = from str in strings where str.StartsWith("h") select str; // // クエリの実行. // foreach(string str in query){ Console.WriteLine(str); } } } }
サンプルも見たままなので、解説などはいらないですが
一つだけ注意点。
Linqクエリは、構築した時点ではまだ実行されていません。
つまり上記の
var query = ...
の時点ではクエリが構築されただけで実行はされていません。
Linqは基本的に遅延評価を行います。
実行が実際に行われるのはforeachにてループする際です。
また、一度つかったら終わりというわけでもなく、foreachにて実行
するたびに検索が行われます。