我有一個雙打數組,我想要最高值的索引。這些是我迄今爲止提出的解決方案,但我認爲必須有一個更優雅的解決方案。想法?如何使用LINQ獲取數組中最高值的索引?
double[] score = new double[] { 12.2, 13.3, 5, 17.2, 2.2, 4.5 };
int topScoreIndex = score.Select((item, indx) => new {Item = item, Index = indx}).OrderByDescending(x => x.Item).Select(x => x.Index).First();
topScoreIndex = score.Select((item, indx) => new {Item = item, Index = indx}).OrderBy(x => x.Item).Select(x => x.Index).Last();
double maxVal = score.Max();
topScoreIndex = score.Select((item, indx) => new {Item = item, Index = indx}).Where(x => x.Item == maxVal).Select(x => x.Index).Single();
我不知道人們是否真的在尋找這個問題時尋找這個問題? `System.Array.IndexOf(score,score.Max())`剛剛看到一個Unity開發人員使用下面的LINQ代碼來完成這個簡單的任務,並且我是面對面的。 – 2017-08-30 06:04:21