gpt4 book ai didi

c# - 如何清理此 LINQ 查询 (SelectMany)?

转载 作者:行者123 更新时间:2023-11-30 13:51:56 27 4
gpt4 key购买 nike

我如何清理此 LINQ 查询以在 sql 语法中使用 SelectMany,而不是像我所做的那样在末尾使用方法链接?

 var runPeakWidths =
(from ipa in runAnalysis.PassAnalyses
let peakWidths = BuildPeakWidths(ipa)
select peakWidths)
.SelectMany(data => data);

编辑:变成紧致的小方法:

    public void CreateRunStatistics(Func<IPassAnalysis, IEnumerable<double>> buildMethod, string name)
{
var data = runAnalysis.PassAnalyses.SelectMany(buildMethod);
statistics.Add(StatisticsBase.Calc(name, data));
}

谢谢!

最佳答案

var runPeakWidths = runAnalysis.PassAnalyses.SelectMany(ipa => BuildPeakWidths(ipa));

如果你愿意,你也可以使用它:

var runPeakWidths = runAnalysis.PassAnalyses.SelectMany<Ipa, Pw>(BuildPeakWidths);

其中 Ipaipa 的类型PwPeakWidth 的类型。

我已可靠地获悉(我自己尚未验证)方法组的返回类型推断现已在编译器中实现,因此这应该适用于 C# 4:

var runPeakWidths = runAnalysis.PassAnalyses.SelectMany(BuildPeakWidths);

关于c# - 如何清理此 LINQ 查询 (SelectMany)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3642777/

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