gpt4 book ai didi

c# - 在 Linq 中比较和分配元素

转载 作者:行者123 更新时间:2023-11-30 13:16:48 26 4
gpt4 key购买 nike

假设我已经(按此处未显示的日期)对数字列表进行排序:

5, 7, 10, 4, 3, 7, 4

我想得到增加的平均值,所以 5 到 7 然后 7 到 10 和 3 到 7 是 (2+3+5)/3我还希望减少 10 到 4、4 到 3 和 7 到 4 的平均值是 (6+1+3)/3

在 Linq 中是否有一种简单的方法可以做到这一点?

最佳答案

我会先计算两个连续数字之间的变化。这可以用 Enumerable.Zip 来完成通过跳过第一项相同的列表。然后你可以获得向上移动的变化或向下移动的变化并计算它们的平均值:

var changes = list.Zip(list.Skip(1), (x,y) => y-x); // [ 2, 3, -6, -1, 4, -3 ]
var averageUp = changes.Where(x => x > 0).Average(); // 3
var averageDown = changes.Where(x => x < 0).Average(); // -3.33

关于c# - 在 Linq 中比较和分配元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24315286/

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