12月8日(月)1コマ目
今日、やったこと
- [LINQ]複数列でグループ化
- [練習問題]LINQ練習問題3
今日のホワイトボード
複数列でグループ化
以下が単一プロパティ(=列)でグループ化する場合と異なる。
〇グループ化する際のキーとなるプロパティ(=列)の指定
byにあとに、グループ化のキーとなる列の匿名クラスを作成。
この匿名クラスのプロパティ値が同じなら、同じグループになる。
〇Keyプロパティ
グループ化のキーとなるプロパティを表すKeyプロパティには複数列が含まれる。
Key.プロパティで各プロパティを取得する。
サンプルプログラム
売上日と商品名でグループ化し、各グループの売上金額を取得。
Sales.cs
売上データテーブルに対応するクラス。
SalesDetail.cs
売上詳細データテーブルに対応するクラス。
SushiDbContext.cs
追加したSalesクラス、SalesDetailクラスを使って、cs_売上データ一覧、cs_売上詳細データ一覧のプロパティを追加。
Program.cs
[練習問題 解説]LINQ練習問題3
正解例をあげておきます。
以下のクラスはサンプルプログラムと同じ。
- Group.cs
- Item.cs
- Sales.cs
- SalesDetail.cs
- SushiDbContext.cs
①売上毎の商品点数(数量の総和)を出力
②売上日毎の売上件数を出力
③商品毎の売上総数を出力
④売上日毎の売上総数を出力
⑤商品毎の売上総額を出力
⑥売上日毎の売上総額を出力
⑦グループ毎の売上総数を出力
⑧売上日毎の各グループの売上総額を出力
⑨売上毎の各グループの売上件数を出力
⑩グループ名が にぎり または まき の商品毎の売上総額を出力
⑪価格が1,000 円代(1,000~1,999)の商品の商品毎の売上件数を出力
次回は
グループに対する条件(having)。