12月1日(月)1コマ目
今日、やったこと
[LINQ]グループ化
今日のホワイトボード
LINQのグループ化
SQLと異なり、groupとbyのあいだにグループ化する対象を指定。
byのあとには、グループ化する際のキーを指定。これはSQLと同じ。
|
| 図 LINQのgroup句 |
グループ化のみ
LINQは「select句またはgroup句で終わる」。
以下のように、group句で終了すると、グループ化した各グループを取得することができる。
|
| 図 group句で終わった場合 |
SQLと異なり、取得した各グループの中身をさらに取得することができる。
上のプログラムでは、
- 9行目の変数groupはグループ化された各グループ
- 16行目の変数groupは9行目のgroup
- 16行目の変数itemはグループ化された各グループ内の商品
となる。
グループ関数を使う①
グループ化して、各グループの行数をカウントする。
|
| 図 グループ化した結果を仮テーブルgroupedへ |
まず、グループ化した結果を仮テーブルgroupedに一旦格納。
select句でこの仮テーブルgroupedのCount()メソッドを実行すると、各グループの件数(=行数)が取得できる。
グループ関数を使う②
count()メソッド以外にも、グループ関数のようなメソッドがある。
|
| 図 グループ関数的なメソッドたち |
上図のように、count()メソッド以外は引数が 引数1こ、戻り値ありの ラムダ式。
次回は
複数列でグループ化。
そのあとは練習問題。



