int[] num = {1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1};
如何使用 LINQ 获取索引 3 和索引 8 之间的最大值和最大值的索引?
最佳答案
您可以使用:
var info = num.Select( (i, ind) => new {Value=i, Index=ind}).Skip(3).Take(6)
.OrderByDescending(p => p.Value).First();
Console.WriteLine("Value {0} at Index {1}", info.Value, info.Index);
您还可以使用聚合
:
var info = num.Select( (i, ind) => new {Value=i, Index=ind}).Skip(3).Take(6)
.Aggregate((a, b) => b.Value > a.Value ? b : a);
如果您使用 MoreLinq's MaxBy(),这可以简化或类似的例程更好一些:
var info = num.Select( (i, ind) => {Value=i, Index=ind}).Skip(3).Take(6)
.MaxBy(p => p.Value);
关于c# - LINQ查询如何在开始和结束索引之间选择最大值以及最大值的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8661448/