2013-09-25 40 views
7

Xin chào Tôi đang cố gắng để hiểu sự khác biệt giữa tất cả và ForEach trong LINQ.LINQ Tất cả Vs Foreach

Tôi biết rằng Tất cả được sử dụng để kiểm tra điều kiện và trả về bool nếu vị từ được thỏa mãn. Nhưng khi tôi có một nhiệm vụ bên trong vị ngữ nó chỉ đơn giản là làm việc tốt và donot phàn nàn.

Việc sử dụng ForEach trong trường hợp đó là gì? Hoặc những trường hợp làm cho nó sử dụng của ForEach

Nó có thể là chút ngớ ngẩn nhưng cần phải biết ý nghĩa

+4

'ForEach' không phải là một phần của LINQ. LINQ là chức năng, do đó nó không có chỗ cho một cái gì đó giống như một 'ForEach'. –

Trả lời

13

Có thực sự là không có ForEach trong LINQ (trên mục đích). Có một phương thức , chạy một hành động trên mỗi đối tượng trong danh sách.

Sự khác biệt chính là All là bộ lọc - nó trả về true nếu tất cả các mục khớp với vị từ. tồn tại để tạo các hiệu ứng phụ - bạn chạy một số thao tác trên mỗi mục trong danh sách.

Nói chung, tôi tránh các truy vấn với LINQ gây ra các tác dụng phụ (ví dụ: không thực hiện thao tác trong truy vấn), và thay vào đó đặt chúng trong vòng lặp foreach sau đó. Điều này làm cho ý định rất rõ ràng, giúp bảo trì.

Lưu ý rằng đã thực sự bị xóa khỏi khung WinRT, vì nó thực sự không thêm nhiều giá trị. Eric Lippert đã viết một số great article on the subject sử dụng foreach thay vì .

+0

Tôi đã tự hỏi về khả năng LINQ có một foreach là tốt, liên kết tốt đẹp cho bài viết đó – Alan

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