Hôm nay tôi gặp sự cố với LINQ đối tượng (không phải SQL) xuất hiện do lỗi đánh máy. Tôi có một số .Select
và một số .Where
ở một nơi khác. Tôi đã mong đợi kết quả tương tự nhưng họ đang hiển thị các con số khác nhau. Giả somelist
có 10 yếu tố với tất cả các yếu tố có qty
= 0
LINQ mơ hồ về nơi và chọn
//returns 10 - basically count of all rows. I am expecting 0
somelist.Select(p => p.qty > 0).Count()
//returns 0 - the correct count
somelist.Where(p => p.qty > 0).Count()
nếu cả hai lựa chọn và nơi trở IEnumerable<T>
thì tại sao sự mơ hồ? Cảm ơn bạn.
thx mọi người cho bản cập nhật LINQ 101 đó. – Gullu
Đó là một trong những vấn đề đặt tên thú vị, C# đang cố gắng để có cú pháp như sql (sql gợi ý bạn chọn cột), nhưng tên 'Select', đặc biệt nếu bạn đặt vào vị từ, có thể đọc như bạn chỉ chọn các mục vượt qua, infact trong ruby và smalltalk đó là phương thức 'select'. – jbtule