c# LINQ返回计数器数组索引从最大值到最小值

本文关键字:最大值 最小值 索引 数组 LINQ 返回 计数器 | 更新日期: 2023-09-27 18:10:25

c#和LINQ的新手。我有一个数组,它本质上是一个计数序列。

{1, 3, 5, 7, 2}

我正在尝试编写一个查询,返回按降序排列的最高值索引列表:

4、2、1,3,5,0

我可以通过下面的查询获得最大索引,但我似乎不知道如何通过单个查询获得顺序的下一个索引。

int index = array.ToList().IndexOf(array.Max());

c# LINQ返回计数器数组索引从最大值到最小值

这行得通:

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();

您可以使用Select:-

var result = numbers.Select((v, i) => new { Value = v, Index = i })
                                .OrderByDescending(x => x.Value)
                                .Select(x => x.Index).ToArray();

工作小提琴。