は、ここでの命題です:
var stats =
from estimation in test
group estimation by estimation.code into gestimation
let allItems = gestimation.SelectMany(x => x.EstimationItems)
select new
{
Code = gestimation.Key,
ItemNumber = allItems.Count(),
TotalPrice = allItems.Sum(item => item.Price * item.Quantity)
};
さて、これは、あなたが推定(コードを望んでいた3つのプロパティを持つ匿名型を作成し、数この推定コードのアイテムの合計価格、およびこの推定コードのアイテムの合計価格)。
特定のニーズに合わせて調整できます。 allItemsは、同じコードの見積もりに属するすべてのEstimationItemを含むIEnumerable<EtimationItem>
です。
このオブジェクトを作成するメソッドの範囲外で使用する場合(匿名型ではできない)、これらの値を保持するクラスを作成する必要があります。
修正さ命題: 命題:
var stats =
(from est in test.Cast<Estimation>()
group est by est.code into gEst
let allItems = gEst.SelectMany(est => est.EstimationItems).Cast<EstimationItem>()
select new TestingUI
{
Code = gEst.Key,
Quantity = gEst.Count(),
Total = gEst.Sum(item => item.Price * item.Quantity)
}).ToList();
"に置き換えることができますか?あなたはコードの最初の出現を考慮に入れているようです。また、TestingUI.Quantityには、前記コードまたはすべての見積もりに含まれるアイテムの総数が前記コードで記載されていると想定されますか? –