Đây là mã của tôiLàm thế nào để sử dụng LINQ và tại khoản
if (catid != 0)
posts = posts.Where(x => x.catid IN '1,8,2,109,23');
Các trong trong mã này cho thấy là một lỗi cú pháp. Có cách nào để sửa lỗi này
Đây là mã của tôiLàm thế nào để sử dụng LINQ và tại khoản
if (catid != 0)
posts = posts.Where(x => x.catid IN '1,8,2,109,23');
Các trong trong mã này cho thấy là một lỗi cú pháp. Có cách nào để sửa lỗi này
Bạn cũng phải sử dụng một danh sách khác để so sánh.
List<int> cadIdFoundList = new List<int>();
cadIdFoundList.Add(1);
cadIdFoundList.Add(8);
// etc. . .
posts.Where(x => cadIdFoundList.Contains(x.catId));
int[] ids = new int[] { 1, 8, 2, 109, 23 };
var query = posts.Where(x => ids.Contains(x.catid));
Rob Conery có discussed chủ đề này trước đây.
Hoặc thậm chí đơn giản hơn:
var query = posts.Where(x => new[] { 1, 8, 2, 109, 23 }.Contains(x.catid));
Đó là một sự xấu hổ, chúng tôi phải đặt mới [] đó. Nó sẽ không được mát mẻ nếu chúng ta chỉ có thể làm {1, 7, 3, 5}. Thay vào đó? : D –
Có lẽ một cái gì đó giống như:
HashSet<int> categories = new HashSet<int>() { 1, 2, 8, 23, 109};
posts = posts.Where(post => categories.Contains(post.catid));
mát. Cảm ơn .. Nó hoạt động – Luke101