2015-03-13 35 views
-7

如何可以找到使用Console.WriteLine(「的最少數目是{0}」,myarray.Min())如何找到陣列C#陽性最小數目

+2

你嘗試過什麼了嗎? – cubrr 2015-03-13 09:12:36

+11

希望有一個像這樣的東西的搜索引擎。我敢打賭,這個網址看起來像這樣:https://www.google.com/search?q=how+to+find+positive+minimum+number+in+array+C%23 – derape 2015-03-13 09:13:04

+0

'myarray.Where(t = > t> = 0).Min()'? – 2015-03-13 09:13:13

回答

3

在陣列C# 林只陽性最小數目假設一個int[]作爲輸入:

int minPosNum = myarray.Where(i => i > 0).Min(); 

拋出一個InvalidOperationException如果沒有正數。所以,你可以使用DefaultIfEmpty改用這種方法:

int minPosNum = myarray.Where(i => i > 0).DefaultIfEmpty(int.MinValue).Min(); 

這裏的作業答案,使用一個循環:

​​

這個循環只有一個問題:你不知道是否有一個積極的數字如果結果是int.MaxValue,因爲那可能意味着沒有或者只有int.MaxValue在數組中。然後你可以使用這個笨拙的方法:

int minPosNum = int.MaxValue; 
bool positiveNumberFound = false; 
foreach (int i in myarray) 
{ 
    if (i > 0) 
    { 
     positiveNumberFound = true; 
     if(i < minPosNum) minPosNum = i; 
    } 
} 
+0

@DmitryBychenko:謝謝,它已經修復;) – 2015-03-13 10:21:16

2

只需使用WhereMin之前消除負數:

myarray.Where(x => x >= 0).Min()