Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 优化LINQ OrderByDescending查询_C#_Linq - Fatal编程技术网

C# 优化LINQ OrderByDescending查询

C# 优化LINQ OrderByDescending查询,c#,linq,C#,Linq,我需要在通用集合上运行LINQ。 当前查询运行速度非常慢 var patternsWithMaxLenArray = totalPatterns .Where ( pattern => pattern.Contains(maxLen) && pattern.All(lenInPattern => curQuantities.Keys.Contains(lenInPattern)) &&

我需要在通用集合上运行LINQ。
当前查询运行速度非常慢

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…帮助很大