gpt4 book ai didi

c# - GroupBy 执行缓慢

转载 作者:太空宇宙 更新时间:2023-11-03 14:58:51 24 4
gpt4 key购买 nike

我有以下查询,对于 3000 条记录非常慢,并生成 370 个条目。我怎样才能提高它的性能?

dealerResults = _results.GroupBy(x => new { x.DealerName, x.DealerId })
.Select(x => new MarketingReportResults()
{
DealerId = x.Key.DealerId,
DealerName = x.Key.DealerName,
LinkedTotal = linkedLeadCores.Count(y => y.DealerId == x.Key.DealerId),
LeadsTotal = x.Count(),
SalesTotal = x.Count(y => y.IsSold),
Percent = (decimal)(x.Count() * 100) / count,
ActiveTotal = x.Count(y => y.IsActive),
}).ToList();

最佳答案

我认为 linkedLeadCores.Count() 是这里的瓶颈,因为每次输入 _results 时,您都会遍历整个 linkedLeadCores 列表被处理。您的评论似乎也证实了这一假设。

因此,为了消除瓶颈,您可以创建一个 map (又名字典),在用 _results 做任何事情之前保存每个经销商的数量......

var linkedLeadCoresCountMap = linkedLeadCores
.GroupBy(y => y.DealerId )
.ToDictionary(y => y.Key, y => y.Count());

...然后你可以写

LinkedTotal = linkedLeadCoresCountMap.ContainsKey(x.Key.DealerId) ?
linkedLeadCoresCountMap[x.Key.DealerId] : 0,

关于c# - GroupBy 执行缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47331803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com