我有一个问题,可以说我有一个数组:获得最大的从C#中的子阵列
var array = new int[] { 7, 16, 4, 9, 865, 3, -8, 56};
我想从指数得到最大值(可以说指数4),怎么办我这样做? 有什么样:
array.fromIndex(4).max()
也,我试图去简单做
(array + 4).max()
但得到一个错误
“操作符 '+' 无法应用于”
这是为什么?
谢谢!
我有一个问题,可以说我有一个数组:获得最大的从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();
此外,考虑到标题中的问题(如何从一个范围内获取最大值),提到可能的结合'Take()'和Skip()'是很有用的。 – jdphenix
@ jdphenix好点,补充了信息 –
'array.Skip( 4)。最大()'? – yaakov
你所有的4个问题都得到了相当好的回答。您应该通过将其标记为正确答案来返还该优惠。因为你从来没有做过[当我回答我的问题时该怎么做?](http://stackoverflow.com/help/someone-answers)文章应该有帮助。 [接受答案是如何工作的](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)文章甚至有一张照片。美好的一天 –