我正在为汽车制造商,模型和引擎等从月体数据的相关集合中创建4或5个级别的这种树数据结构。它需要长达一分钟尽管如此。有没有更快的方法做到这一点?提高linq构建的树形数据结构的性能
var carData = (from manufacturer in manufacturerMonths.Select(m => m.Manufacturer).Distinct()
select new
{
ManufacturerData = (from manufacturerMonth in manufacturerMonths
.Where(t => t.Manufacturer == manufacturer)
select new
{
Date = manufacturerMonth.Date,
Volume = manufacturerMonth.Volume,
Models = new
{
ModelsData = (from model in modelMonths
.Where(m => m.Manufacturer == manufacturer)
.Select(m => m.Model).Distinct()
select new
{
ModelData = (from modelMonth in modelMonths
.Where(m => m.Model == model)
select new
{
Date = modelMonth.Date,
Volume = modelMonth.Volume,
Engines = new
{
EnginesData = (from engine in engineMonths
.Where(e => e.Model == model)
.Select(e => e.Engine).Distinct()
select new
{
EngineData = ....
}
}
}
}
}
}
}
}
“manufacturerMonths”中有多少个对象?如果您尝试将所有这些东西写入单独的操作中,哪些操作花费最多时间?您还可以使用探查器来剖析代码以获取最耗时的代码 –
'modelMonth'是什么类型? 'engineMonths'? 'manufacturerMonths'? –