Tôi cần kiểm tra xem tất cả các định nghĩa có chứa một số dữ liệu cụ thể hay không. Nó hoạt động tốt ngoại trừ trường hợp khi GroupBy trả về bộ sưu tập trống.LINQ Tất cả trên bộ sưu tập trống
var exist = dbContext.Definitions
.Where(x => propertyTypeIds.Contains(x.PropertyTypeId) && x.CountryId == countryId)
.GroupBy(x => x.PropertyTypeId)
.All(...some condition...);
Làm thế nào để viết lại điều này để Tất cả sẽ trả về sai trên bộ sưu tập trống?
CẬP NHẬT: Đây là LINQ to SQL và tôi muốn thực thi điều này trong một cuộc gọi.
UPDATE2: Tôi nghĩ rằng công trình này:
var exist = dbContext.Definitions
.Where(x => propertyTypeIds.Contains(x.PropertyTypeId) && x.CountryId == countryId)
.GroupBy(x => x.PropertyTypeId)
.Count(x => x
.All(...some condition...)) == propertyTypeIds.Count;
Đây có phải là LINQ to Objects hay cái gì khác không? Các câu trả lời có thể hoàn toàn khác nhau. –
Hãy thử sử dụng AllOrDefault – elloco999
'Tất cả' sẽ không trả về false trên một bộ sưu tập trống. Xem tại đây: http://stackoverflow.com/questions/7884888/why-does-enumerable-all-return-true-for-an-empty-sequence – sr28