gpt4 book ai didi

c# - 获取 List.Max 的索引?

转载 作者:行者123 更新时间:2023-11-30 14:45:02 25 4
gpt4 key购买 nike

我有 list

List<double> nums = new List<double> {0.2, 5.0, 12.0};

我正试图找到 element-element^2 最大的元素。我能跑

nums.Max(num => num - Math.Pow(num, 2))

找到最大值,但我如何才能获得该元素的索引,该元素在评估 num - Math.Pow(num, 2) 时标识为产生最大值? IndexOf 将不起作用,因为 Max 返回的值不是应用时产生最大值的实际元素的值,而是整个表达式的值。

我看过Obtain the Index of the Maximum Element但这似乎涵盖了 Max 返回实际元素的情况,因此 IndexOf 有效。我只能想象有一种简单的方法可以解决我的问题,因为 Max 无论如何都会迭代列表。

最佳答案

有时使用一个好的旧循环会更容易

double maxValue = Double.MinValue;
int indexOfMax = -1;
for (int i = 0; i < nums.Count; i++) {
double x = nums[i];
double y = x - x * x;
if (y > maxValue) {
maxValue = y;
indexOfMax = i;
}
}
double element = nums[indexOfMax];

关于c# - 获取 List.Max 的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55715031/

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