У меня есть список
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
, является не значением фактического элемента, который дает наибольшее значение при применении, а значением всего выражения.
Я смотрел на Получить индекс максимального элемента , но, похоже, он охватывает Max
в случае, когда он возвращает фактический элемент и, таким образом, IndexOf
работает.Я могу только представить, что существует простой подход к решению моего дела, потому что Max
повторяет список в любом случае.