Phương thức All() kiểm tra xem tất cả phần tử trong chuỗi có thỏa mãn một điều kiện hay không. Trả về true nếu tất cả thỏa mãn, false nếu có ít nhất một phần tử không thỏa mãn. Trả về true cho chuỗi rỗng (vacuous truth).
Ví dụ: Kiểm tra tất cả phần tử > 5
int[] arr = { 10, 15, 20 };
bool allGreaterThan5 = arr.AsQueryable().All(val => val > 5); // true
Mã nguồn hoàn chỉnh
using System;
using System.Linq;
class Demo
{
static void Main()
{
int[] arr = { 10, 15, 20 };
// Kiểm tra tất cả phần tử > 5
bool res = arr.AsQueryable().All(val => val > 5);
Console.WriteLine(res); // True
}
}
Kết quả
True
So sánh All vs Any
| Phương thức | Logic | Trả về true khi | Chuỗi rỗng |
|---|---|---|---|
All(predicate) | ∀ x: P(x) | Tất cả thỏa mãn | true |
Any(predicate) | ∃ x: P(x) | Ít nhất 1 thỏa mãn | false |
Any() | ∃ x | Có ít nhất 1 phần tử | false |
Ví dụ thực tế
// Kiểm tra tất cả sinh viên có điểm >= 50
bool allPassed = students.All(s => s.Score >= 50);
// Kiểm tra không có đơn hàng nào bị hủy
bool noneCancelled = orders.All(o => o.Status != OrderStatus.Cancelled);
// Tương đương logic
bool allPassed2 = !students.Any(s => s.Score < 50); // De Morgan
Lưu ý
- Short-circuit: Dừng ngay khi tìm thấy phần tử không thỏa mãn (hiệu quả).
- Chuỗi rỗng trả về
true- logic toán học "vacuous truth". Cần kiểm traAny()trước nếu muốn false cho rỗng. - Dùng
Allthay cho!Any(!predicate)để code dễ đọc hơn.