簡體   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