How do I get the index of the highest value in an array using LINQ?

前端 未结 9 2159
死守一世寂寞
死守一世寂寞 2020-11-27 18:46

I have an array of doubles and I want the index of the highest value. These are the solutions that I\'ve come up with so far but I think that there must be a more elegant so

9条回答
  •  执笔经年
    2020-11-27 19:13

    System.Linq.Enumerable.Select with index and System.Linq.Enumerable.Aggregate would do it in one line

    public static int IndexOfMax(this IEnumerable source)
        where TSource : IComparable => source.Select((value, idx) => (value, idx))
        .Aggregate((aggr, next) => next.value.CompareTo(aggr.value) > 0 ? next : aggr).idx;
    

提交回复
热议问题