我有一个具有以下结构的记录列表:(简化示例!)
class Rate
{
string Code;
double InterestFrom;
double InterestTo;
double IncomeFrom;
double IncomeTo;
double Value;
}
Run Code Online (Sandbox Code Playgroud)
是的,我定义了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;
}
Run Code Online (Sandbox Code Playgroud)
我想用一个LINQ查询来做这件事.我可以解决其他解决方案,但挑战是在一个LINQ语句中完成.基本上,顶级组按代码分组.下一个级别是值InterestFrom和InterestTo,最低级别是IncomeFrom,IncomeTo和Value的列表.
那么,LINQ语句会是什么呢?
Rya*_*saw 18
这是非常巨大的,但这是我所拥有的:
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()
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5365 次 |
| 最近记录: |