標準クエリ演算子 クエリ式関係
標準クエリ演算子(クエリ式関係) (C# によるプログラミング入門)
http://ufcpp.net/study/csharp/sp3_stdquery.html
概要、サンプルデータ、クエリ式の構成要素、クエリ変換とfrom、基本、Cast、Select、透過識別子とlet、
Where, SelectMany, Join GroupJoin, OrderBy ThenBy, GroupBy, まとめ
標準クエリ演算子には、クエリ式で表せるものと、メソッド呼び出しの形でしか表せないものがある。
クエリ式は、from, where, select, group..by, into, orderby, join, letといった句からなる。
クエリ式は、上から順にコンパイラによってメソッド呼び出しに変換される。
var b = from p in a select p.X into x where x > 2 select x; // ↓ var b = a .Select(p => p.X) .Where(x => x > 2);
Cast from直後に型を指定できる
var b = from int p in a // from p in a.Cast<int>()と同じ select p;
Select 出力形式の指定
var b = from p in a select p.X; // X だけ取り出す。 // ↓ var b = a.Select(p => p.X);
selectのあとにクエリ式を続けたい場合はintoを使う
let クエリ式中で計算した値を変数に格納
Where
SelectMany 1対多の射影
selectだと配列のリストになるところを、select manyだと1つのリスト(IEnumerable)になる。
fromを二重に使うとSelectManyに変換される
var b = from p in a where p.X > 2 from q in p.Z select new { p.X, Z = q };
Join, GroupJoin データシーケンスの結合
OrderBy, ThenBy データシーケンスの整列
OrderByDescending、ThenByDescendingだと降順。
GroupBy 指定したキーに対し値の同じものをグループ化