2014-03-03 43 views
0

有這樣的整數數組:檢查int數組包含一個值,如果是的話,我有多少

int[] responses = new int[3]; 

然後腳本執行ping IP地址的4倍。如果它得到答覆,它會向數組添加「1」。如果它沒有得到答覆,它會向數組中添加一個「0」。我想看看數組是否包含任何零,如果有,多少。任何想法,我怎麼能做到這一點?

+3

這是相當瑣碎,你嘗試過什麼? – CodeCaster

+0

請注意,如果要存儲四個元素,爲什麼要爲三個元素預留空間?使用列表的建議也很好。 –

+0

@Romiox哎呀,好點。我對c#很陌生,我認爲0是一個元素。 – Matt

回答

7
int failedResponsesCount = responses.Count(r => r == 0); 

我還建議使用List<bool>保留回覆的歷史記錄。因爲你正在添加項目(順便說一下,與數組,你不能分辨0是'添加',或者它只是項目的默認值)。你也可以在這裏獲得漂亮的布爾邏輯(你可以得到回覆或不回覆) - 你不需要用整數來表示響應類型。

0

另一種方式;)

int total = responses.Count(x => x == 0); 
if(total > 0) 
    //Do something; 
else 
    //Do something else 
+1

這比直接運行'Count'然後檢查結果好嗎?現在你必須不止一次地迭代列表。 – Default

+0

你是對的!我只是這樣做,因爲他要求這樣做。 「我想看看數組是否包含任何零,如果有,有多少。」但正如您所說,效率不高,讓我編輯 –

+1

您的最新編輯不滿足'多少'的要求;)你可以去做int計數; if(count = responses.Count(x => x == 0)> 0)'。 –

相關問題