2011-10-31 152 views

回答

15

Enumerable.All

真如果源序列的每個元件通過在 指定的謂詞,或者如果序列的測試是空;否則,是錯誤的。

6

這是因爲兩個原因:

  1. 正如你幻象編輯更新提到,你的索引條件抓住由開始Split(C#計數返回數組中的進入0)

    var parts = line.Split(new char[] { ':' }); 
    // parts[0] == "name"; 
    // parts[1] == ""; 
    
  2. Enumerable.All<TSource>(...)返回true如果輸入序列爲空

    返回值

    類型:System.Boolean 如果源序列的每個元素在經過指定的謂詞的測試爲真,或者如果該序列是空的;否則,是錯誤的。

8

這是一個vacuously true表達。

所有的字符都是數字,因爲你找不到反例。此代碼:

return s.All(char.IsDigit); 

大致相當於這個循環:

foreach (char c in s) 
{ 
    if (!char.IsDigit(c)) { return false; } 
} 
return true; 

在這種重寫的版本,它應該清楚的是,如果有字符串中沒有字符,那麼循環體將永遠不會進入和所以結果是真的。

+1

Upvote for good Wikipedia link,never know that have a name :) –

相關問題