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 を合計して最終的な並べ替えを行う方法がわかりません。結果セットの他の用途のため、「合計」レコードを結果セットに移植しようとはしません (匿名型では、それがどのように行われるか正確にはわかりません)。このようなことを経験したことのある人はいますか?
どうも!