【发布时间】:2011-12-28 20:45:21
【问题描述】:
如何使用 LINQ 查询数字数组以获得起始索引和结束索引之间的最大值。
int[] numbers = { 1, 2, 3, 4 ,5 ,6 ,7 ,8 ,9 ,8 ,7 ,6, 5 ,4 ,3 ,2 ,1};
我想找到 numbers[5] 和 numbers[8] 之间的最大值
谢谢
迈克
【问题讨论】:
如何使用 LINQ 查询数字数组以获得起始索引和结束索引之间的最大值。
int[] numbers = { 1, 2, 3, 4 ,5 ,6 ,7 ,8 ,9 ,8 ,7 ,6, 5 ,4 ,3 ,2 ,1};
我想找到 numbers[5] 和 numbers[8] 之间的最大值
谢谢
迈克
【问题讨论】:
您需要跳过四个元素,然后取接下来四个中的最大值(#5..#8,包括):
var begin = 5;
var end = 8;
var res = numbers.Skip(begin-1).Take(end-begin+1).Max();
【讨论】:
怎么样:
numbers.Skip( 5 ).Take( 4 ).Max();
【讨论】:
类似这样的:?
numbers.Where((n, i) => i >= 5 && i <= 8).Max();
【讨论】: