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こ、戻り値ありの ラムダ式。

次回は

複数列でグループ化。

そのあとは練習問題。

 

このブログの人気の投稿

1月19日(月)1コマ目

10月27日(月)1コマ目

1月26日(月)1、2コマ目