ASP.NET Webサイト開発(LIN.Qクエリ基本文)


概要:このブログでは、クエリー構文を使用してクエリー式を作成する方法について説明します。以下は基本的な8つのクエリー文です。


キーワード
説明
from
範囲変数とデータソースの指定
where
bool式に従ってデータソースからデータをフィルタします(条件式!=,=,&,|)
select
クエリー結果の要素が持つタイプと表現形式を指定します(select句では、クエリーした要素を柔軟に処理してから結果を返すことができます).
group
クエリの結果をキー値でグループ化(IGrouping)します(構文の規定により、LINQ式はfrom句で始まる必要があり、selectまたはgroup句で終わる必要があります.したがって、selectを使用して結果を返すほか、group句を使用して要素グループ化後の結果を返すこともできます.)
into
join、group、またはselect句の結果の参照として機能する識別子を提供します(into句はgroup、select、join句の結果の参照として機能します).
order by
クエリーされた要素のソート(ascending/descending)
join
2つの指定された一致条件に従ってEqualsは2つのデータソースを接続します(1つのデータソースの要素の属性が別のデータソースの要素の属性と等しく比較できる場合、2つのデータソースはjoin句で関連付けることができます).
let
クエリ式のサブエクスプレッションクエリの結果を格納する範囲変数を生成します(let句は、LINQ式のサブエクスプレッションの計算結果を格納するために使用されます).
注意:この表の参照をクリックしてリンクを開く
例は次のとおりです.
from文
List list=...      
var query =from u in list select u;  

where文
int[] arr =new int[]{0,1,2,3,4,5,6,7,8,9};      
var query =from n in arr      
where n >3 && n<6      
select n;  

select文
int[] arr =new int[] {0,1,2,3,4,5,6,7,8,9};      
var query =from n in arr       
select n*10; 

group文
int[] arr =new int[]{0,1,2,3,4,5,6,7,8,9};      
var query =from n in arr      
where n>1 && n<6      
group n by n%2; 

into文
int[] arr =new int[]{0,1,2,3,4,5,6,7,8,9};      
var query =from n in arr       
where n>1&& n<6      
group n by n%2 into g      
from sn in g      
select sn;  

order by文
int[] arr =new int[]{0,1,2,3,4,5,6,7,8,9};      
var query =from n in arr      
where n>1 && n<6      
orderby n descending      
select n ; 

join文
int[] arra =new int[] {0,1,2,3,4,5,6,7,8,9};      
int[] arrb =new int[]{0,2,4,6,8};      
var query =from a  in arra       
where a <7      
join b in arrb on a equals b       
select a; 

let文
int[] arr =new int[]{0,1,2,3,4,5,6,7,8,9};      
var query =from n in arr      
let isEven =return n%2==0?true:false;      
where isEven       
select n;