2011-10-31 32 views

Trả lời

15

Enumerable.All

đúng nếu mọi phần tử của dãy nguồn vượt qua thử nghiệm trong vị chỉ định, hoặc nếu chuỗi rỗng; ngược lại, sai.

6

này là vì hai lý do:

  1. Như đã đề cập trong phantom bạn chỉnh sửa cập nhật, tình trạng lập chỉ mục của bạn lấy thứ hai nhập trong mảng trả về bởi Split (đếm C# bắt đầu từ 0)

    var parts = line.Split(new char[] { ':' }); 
    // parts[0] == "name"; 
    // parts[1] == ""; 
    
  2. Enumerable.All<TSource>(...) trả về true nếu chuỗi đầu vào là trống

    Return Value

    Loại: System.Boolean đúng nếu mọi phần tử của dãy nguồn vượt qua thử nghiệm trong vị quy định, hoặc nếu trình tự trống; ngược lại, sai.

8

Đó là biểu thức vacuously true.

Tất cả các ký tự đều là chữ số vì bạn không thể tìm thấy ví dụ phản đối. Mã này:

return s.All(char.IsDigit); 

là tương đương với vòng lặp này:

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

Trong phiên bản viết lại này nó phải rõ ràng rằng nếu không có ký tự trong chuỗi sau đó thân vòng lặp sẽ không bao giờ được nhập và vì vậy kết quả là đúng.

+1

Ưu đãi cho liên kết Wikipedia tốt, không bao giờ biết rằng có tên :) –

Các vấn đề liên quan