2011-10-31 18 views

答えて

15

Enumerable.All

真ソースシーケンスのすべての要素は、 指定された述語でテストに合格または配列は空の場合は場合。それ以外の場合はfalseです。

6

これは2つの理由は次のとおりです。

  1. あなたファントム編集更新で述べたように、あなたのインデックス条件はSplitによって返される配列内のエントリをつかむ(C#がで始まるカウント0)

    var parts = line.Split(new char[] { ':' }); 
    // parts[0] == "name"; 
    // parts[1] == ""; 
    
  2. Enumerable.All<TSource>(...)戻るtrue入力シーケンスが空の場合

    戻り値

    型:可能System.Boolean ソースシーケンスのすべての要素が指定された述語でテストに合格した場合はtrue、または配列が空の場合。それ以外の場合はfalseです。

8

それはvacuously true表現です。

反例が見つからないため、すべての文字が数字です。このコード:

return s.All(char.IsDigit); 

はこのループとほぼ同等です:この書き換えられたバージョンで

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

文字列の文字がない場合は、ループ本体を入力することはないだろうことは明らかであるべきで、結果は真です。

+1

Upvote良いウィキペディアのリンクのために、決して名前を知っていた:) –

関連する問題