ホームに戻る
出典 :
関連 :
目次 :
C#におけるクエリ
集合(コレクション)から特定の条件に合致する要素を抽出できるクエリ(SQLのクエリと同様)文を用いることができる。
基本的なクエリ文

出力結果 :
97 92 81
ここでは、コレクション Scores から、80 を超える値を抽出し、新たなコレクション queryHighScores を作成している。
記述すべき内容は記述順を除き、SQLとほぼ同様である。
where 句で論理演算子を用いることもできるほか、複数の where 句をクエリに含めることも可能である。
このため、以下のコードにおけるクエリ#1と#2の結果は等しくなる。
class WhereSample2
{
static void Main()
{
// 元データ
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
// クエリ#1
// 条件式を && で結合
var queryLowNums2 =
from num in numbers
where num < 5 && num % 2 == 0
select num;
// クエリ#2
// 複数の where 句を記述
var queryLowNums3 =
from num in numbers
where num < 5
where num % 2 == 0
select num;
// 画面出力
foreach (var s in queryLowNums2)
{
Console.Write(s.ToString() + " ");
}
Console.WriteLine();
foreach (var s in queryLowNums3)
{
Console.Write(s.ToString() + " ");
}
}
}
出力結果 :
4 2 0
4 2 0
LINQとの関係
上述のように、C#ではSQLに準じたクエリ文を用いることができるが、記述は簡潔ではなく、SQLに慣れていないと扱いづらい。
LINQはこの弱点を補う機能で、よりプログラミング言語との親和性が高い構文を用いることができる。