我有一個問題,可以說我有一個數組:獲得最大的從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)文章甚至有一張照片。美好的一天 –