C# 优化LINQ OrderByDescending查询
我需要在通用集合上运行LINQ。C# 优化LINQ OrderByDescending查询,c#,linq,C#,Linq,我需要在通用集合上运行LINQ。 当前查询运行速度非常慢 var patternsWithMaxLenArray = totalPatterns .Where ( pattern => pattern.Contains(maxLen) && pattern.All(lenInPattern => curQuantities.Keys.Contains(lenInPattern)) &&
当前查询运行速度非常慢
var patternsWithMaxLenArray = totalPatterns
.Where
(
pattern => pattern.Contains(maxLen) &&
pattern.All(lenInPattern => curQuantities.Keys.Contains(lenInPattern)) &&
pattern.GroupBy(len => len).All(g => g.Count() <= curQuantities[g.Key])
)
.Select(pattern => new { pattern = pattern, sum = pattern.Sum() })
.ToArray();
var patternsWithMaxLen = patternsWithMaxLenArray
.OrderByDescending(patternsum => patternsum.sum)
.Select(patternsum => patternsum.pattern);
var iq = patternsWithMaxLen.First();
var patternsWithMaxLenArray=totalPatterns
哪里
(
pattern=>pattern.Contains(maxLen)&&
pattern.All(列宁模式=>curquanties.Keys.Contains(列宁模式))&&
GroupBy(len=>len).All(g=>g.Count()新{pattern=pattern,sum=pattern.sum()})
.ToArray();
var patternsWithMaxLen=patternsWithMaxLen阵列
.OrderByDescending(patternsum=>patternsum.sum)
.Select(patternsum=>patternsum.pattern);
var iq=patternsWithMaxLen.First();
测量。将所有内容剥离到最简单的查询中并进行测量。然后一次添加位,直到找到“洞”。totalPatterns是什么样子的?并用文字描述您想要的查询。使用ANTS Profiler…帮助很大