LINQの作業に取り組んでおり、GroupBy拡張機能を初めて使用しています。LINQ GroupByを新しいオブジェクトに追加する
私はいくつかの簡単な例を使用しようとしたときに私の実際のコードを含めるためにこの投稿を編集していますが、それは助けようとしている人にはもっと混乱させるようです。そのために残念。
注記以下の金額フィールドを合計する必要があります。グループからリストを取り出す方法を理解しようとしているだけなので、まだ試してみませんでした。ここで
は私のコードです:これを実行しようとしたとき、我々が得る
myCSTotal2.AddRange(userTotals.Where(w => w.priceinfoId == priceinfoID).GroupBy(g => g.termLength, o => new Model.MyCSTotal2
{
PriceinfoID = o.priceinfoId,
BillcodeID = o.billcodeid,
JobTypeID = o.jobtypeID,
SaleTypeID = o.saletypeID,
RegratesID = o.regratesID,
NatAccPerc = o.natAcctPerc,
NatIgnInCommCalc = o.natIgnInCommCalc,
TermLength = (int)o.termLength,
Amount = o.RMR1YrTotal/12,
RuleEvaluation = 0
}).Select(grp => grp.ToList()));
エラーは次のとおりです。
引数1:
IEnumerable<MyCSTotal2>
EDITに IEnumerable<List<MyCSTotal2>>
から変換することはできません: 助けてくれてありがとう。ここに私たちが終わったのは次のとおりです:
myCSTotal2.AddRange(userTotals.Where(w => w.priceinfoId == priceinfoID)
.GroupBy(g => g.termLength)
.SelectMany(cl => cl.Select(o => new Model.MyCSTotal2
{
PriceinfoID = o.priceinfoId,
BillcodeID = o.billcodeid,
JobTypeID = o.jobtypeID,
SaleTypeID = o.saletypeID,
RegratesID = o.regratesID,
NatAccPerc = o.natAcctPerc,
NatIgnInCommCalc = o.natIgnInCommCalc,
TermLength = (int)o.termLength,
Amount = cl.Sum(m=>m.RMR1YrTotal/12),
RuleEvaluation = 0
})));
'PeoplePlus'は' People'から継承していますか? – maccettura
後でリストを平坦化する必要がある場合、グループのポイントは何ですか? – octavioccl
そして何が問題なのですか? – HimBromBeere