C# LINQ 返回计数器数组索引的最大值到最小值

4
作为一个C#和LINQ的新手,我有一个计数序列数组。
{1,3,5,2,7,2}
我正在尝试编写一个查询来返回按降序排列的最高值的索引列表。
4,2,1,3,5,0
我可以通过下面的查询获取最大索引,但似乎无法找到如何使用单个查询获得下一个连续的索引。
int index = array.ToList().IndexOf(array.Max());

可能是Linq Orderby Descending Query的重复内容。 - Old Fox
2
@OldFox - 这根本不是重复的。 - Enigmativity
2个回答

10

这是有效的:

var list = new [] {1,3,5,2,7,2};

var indices =
    list
        .Select((n, i) => new { n, i })
        .OrderByDescending(x => x.n)
        .Select(x => x.i)
        .ToArray();

谢谢,Enigmativity! - tarzan
@tarzan - 如果您喜欢我的回答,请不要忘记点击接受勾选。 :-) - Enigmativity

5
你可以使用 Select:-
var result = numbers.Select((v, i) => new { Value = v, Index = i })
                                .OrderByDescending(x => x.Value)
                                .Select(x => x.Index).ToArray();

工作演示


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接