Wir arbeiten an einigen LINQ-Sachen und sind neu bei der Verwendung der GroupBy-Erweiterung.LINQ GroupBy in ein neues Objekt
Ich bearbeite diesen Beitrag, um meinen tatsächlichen Code einzuschließen, als ich versuchte, ein einfaches Beispiel zu verwenden, aber es scheint, dass es es verwirrender für diejenigen macht, die helfen wollen. Das tut mir leid.
HINWEIS Wir müssen das Feld Betrag summieren. Wir haben das noch nicht versucht, da wir nur versuchen herauszufinden, wie man die Liste aus der groupBy extrahiert.
Hier ist mein Code:
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()));
Der Fehler, den wir bekommen, wenn dies zu tun versuchen, ist:
Argument 1: von
IEnumerable<List<MyCSTotal2>>
zuIEnumerable<MyCSTotal2>
EDIT nicht konvertieren : Danke für die Hilfe. Hier ist, was wir am Ende mit:
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
})));
Erbt 'PeoplePlus' von' People'? – maccettura
Aber was ist der Sinn der Gruppe, wenn Sie die Liste später reduzieren müssen? – octavioccl
Und was ist die Frage? – HimBromBeere