ホームに戻る
出典 :
select 句 - C# リファレンス - Microsoft Learn from 句 - C# リファレンス - Microsoft Learn where 句 - C# リファレンス - Microsoft Learn
関連 :
LINQ (Language Integrated Query)
目次 :

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はこの弱点を補う機能で、よりプログラミング言語との親和性が高い構文を用いることができる。