[英]Multi-level grouping in LINQ?
我有一個具有以下結構的記錄列表:(簡化示例!)
class Rate
{
string Code;
double InterestFrom;
double InterestTo;
double IncomeFrom;
double IncomeTo;
double Value;
}
是的,我定義了List <Rate>。 我需要將此列表轉換為以下簡化結構:
class RateList
{
List<Code> code;
}
class Code
{
string code;
List<Interest> interest;
}
class Interest
{
double InterestFrom;
double InterestTo;
List<Income> income;
}
class Income
{
double IncomeFrom;
double IncomeTo;
double Value;
}
我想用一個LINQ查詢來做這件事。 我可以解決其他解決方案,但挑戰是在一個LINQ語句中完成。 基本上,頂級組按代碼分組。 下一個級別是值InterestFrom和InterestTo,最低級別是IncomeFrom,IncomeTo和Value的列表。
那么,LINQ語句會是什么呢?
這是非常巨大的,但這是我所擁有的:
var rateList = new RateList
{
code = (from r in rates
group r by r.Code into g
select new Code
{
code = g.Key,
interest = (from i in g
group i by new {i.InterestFrom, i.InterestTo} into g2
select new Interest
{
InterestFrom = g2.Key.InterestFrom,
InterestTo = g2.Key.InterestTo,
income = (from inc in g2
select new Income
{
IncomeFrom = inc.IncomeFrom,
IncomeTo = inc.IncomeTo,
Value = inc.Value
}).ToList()
}).ToList()
}).ToList()
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.