1

テーブルオーダーがあります(名前、日付、価格)

  horse, 7.5.2012, 100
  cat, 14.5.2012, 50
  horse, 8.5.2012, 70,
  dog, 13.5.2012, 40

月曜日に注文名と価格の合計を表示したい。私が欲しいものを出力してください:

  horse, 100
  cat, 50
  dog, 0

しかし今、私はこれしか持っていません:

  horse, 100
  cat, 50

このlinqクエリで

  from c in orders
  where (int)c.date.DayOfWeek == this._monday
  group c by c.name into g
  select new {
    Name = g.Key,
    Price = g.Sum(c => c.Price)
  }

私が望むものを出力するために何を変更しなければならないか教えてください。:)

4

1 に答える 1

8

最初にグループ化を試してから、月曜日のフィルタリングを行います

from c in orders  
group c by c.name into g
  select new {
    Name = g.Key,
    Price = g.Where(c => (int)c.date.DayOfWeek == this._monday).Sum(c => c.Price)
  }
于 2012-05-03T19:14:25.677 に答える