繁体   English   中英

从C#中的子数组获取最大值

[英]Get max from a sub array in C#

我有一个问题,可以说我有一个数组:

var array = new int[] { 7, 16, 4, 9, 865, 3, -8, 56};

我想索引中获取最大值(让我们说索引4),该怎么做? 是否有类似的东西:

array.fromIndex(4).max()

此外,我尝试变得简单,并做了

(array + 4).max()

但出现错误

“运算符'+'无法应用”

这是为什么?

谢谢!

另外,我尝试简化并做到了(array + 4).max()但收到错误“无法应用运算符'+'”,这是为什么呢?

在C#中, array不是可用于计算的指针。 因此,未定义运算符+来执行此类操作。

如果要开始从某个索引上搜索最大值,则可以跳过到目前为止的所有值:

int maxValue = array.Skip(4).Max();

编辑:受到@jdphenix的建议的启发:

如果要对要搜索的最大范围进行更多控制,则Take方法可能会很有帮助。 这种组合可以让您设置子数组的范围:

var array = new int[] { 7, 16, 4, 9, 865, 3, -8, 56 };
int startIndex = 4;
int numberOfElements = 3;
array.Skip(startIndex).Take(numberOfElements).Max();

如果要指定起始索引和终止索引,则应如下所示:

int startIndex = 4;
int endIndex = 7;
array.Skip(startIndex).Take(endIndex - startIndex).Max();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM