gpt4 book ai didi

c# - 我正在尝试使用 linq 简化一个语句,该语句采用 2 个数字列表并从第二个数字中减去第一个数字

转载 作者:太空狗 更新时间:2023-10-30 01:06:38 24 4
gpt4 key购买 nike

我正在尝试使用 linq 来简化并希望更便宜的语句,该语句采用 2 个数字列表并从第二个数字中减去第一个数字。我有一些有用的东西,但我认为它可以更清洁、更高效。

double[] main = _mainPower.Select(i => i.Decibels).ToArray();
double[] reference = _referencePower.Select(i => i.Decibels).ToArray();

List<double> amplitudeList = new List<double>();
for (int i = 0; i < main.Count(); i++)
{
if (!double.IsNaN(main[i] - reference[i]))
{
amplitudeList.Add(main[i] - reference[i]);
}
}

return amplitudeList;

如果我有 2 个列表 List1 = {8,5,3} 和 List2 = {5,2,1} 返回的列表将是 {3,3,2}我试过了

return _mainPower.Select(i => i.Decibels - _referencePower.Select(a => a.Decibels));

但是显然不行。有没有办法把我的函数变成一个很好的 linq 查询?我不允许的一件事是列表是否有 2 种不同的大小。如果大小不同,则应从末尾修剪较长的列表,使它们与较小的列表相同。

如有任何帮助,我们将不胜感激。

谢谢,

--编辑--

感谢您的帮助,我使用 StriplingWarrior 的帖子获得了我需要的东西。

_mainPower.Zip(_referencePower, (v1, v2) => v1.Decibels - v2.Decibels).Where(i => !double.IsNaN(i));

最佳答案

应该这样做:

return _mainPower.Zip(_referencePower,(v1, v2) => v1-v2)

关于c# - 我正在尝试使用 linq 简化一个语句,该语句采用 2 个数字列表并从第二个数字中减去第一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14863970/

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