1

Linq to Objects に関する質問があります

私たちは製品を製造しており、lossCode の総計でソートされた月ごとの lossCodes を報告しようとしています。

したがって、ソース データ ( List< myProduct > myProductsとして) は次のようになります。

.lossDate / .lossCode
4/10/2012 / TooLarge
4/11/2012 / TooSmall
4/14/2012 / TooSmall
4/14/2012 / TooSmall
4/14/2012 / TooSmall
5/1/2012  / TooLarge
5/10/2012 / TooSmall
4/10/2012 / TooLarge
5/10/2012 / WrongColor

結果の変換は次のようになります。

        |  TooSmall |  TooLarge | WrongColor
04-2102 |    4      |    2      |    0
05-2012 |    1      |    1      |    1

したがって、それは(月、損失コード)によるグループです...さらに、「集計」損失の並べ替えです(したがって、TooSmall cnt = 5、TooLarge cnt = 3、WrongColor cnt = 1が取得しようとしている並べ替え順序です)-しかし最終的な並べ替えに問題があります。

query = from prod in myProducts
  group prod by new {Month = prod.lossDate.ToString("yyyy-MM"), prod.lossCode} into g
  select new
  {
     g.Key.Month,                   
     ReasonCode = g.Key.lossCode,
     NumLosses = g.Count()
  }
  into resultSet
  orderby resultSet.NumLosses descending
  select resultSet;

このコードは間違いなく間違っています (orderby resultSet.NumLosses は明らかに正しくありません) ... しかし、サブグループ Counts を合計して最終的な並べ替えを行う方法がわかりません。結果セットの他の用途のため、「合計」レコードを結果セットに移植しようとはしません (匿名型では、それがどのように行われるか正確にはわかりません)。このようなことを経験したことのある人はいますか?

どうも!

4

1 に答える 1

1

で注文したいと思いますNumLosses

query = (from prod in myProducts
  group prod by new {Month = prod.lossDate.ToString("yyyy-MM"), prod.lossCode} into g
  select new
  {
     g.Key.Month,                   
     ReasonCode = g.Key.lossCode,
     NumLosses = g.Count()
  }
).OrderByDescending(x => c.NumLosses)
于 2012-09-05T04:27:20.807 に答える