我們正在研究一些LINQ的東西,並且是使用GroupBy擴展的新手段。LINQ GroupBy進入一個新的對象
我在編輯這篇文章,包括我的實際代碼,因爲我試圖使用一些簡單的例子,但它似乎使它對那些試圖幫助更迷惑。對不起。
注意我們需要總結下面的金額字段。我們沒有嘗試,因爲我們只是想弄清楚如何從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<List<MyCSTotal2>>
轉換爲IEnumerable<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