2010-10-04 8 views
12

Tôi muốn truy vấn Danh sách <> và tìm hiểu cách MANY mục khớp với tiêu chí lựa chọn. sử dụng LINQ và C# /.net 3.5. Làm cách nào để sửa đổi truy vấn để trả về số lượng int.Nhận số mục của danh sách <> bằng cách sử dụng LINQ

var specialBook = from n in StoreDisplayTypeList 
        where n.DisplayType=="Special Book" 
        select n; 

Trả lời

33
var numSpecialBooks = StoreDisplayTypeList.Count(n => n.DisplayType == "Special Book"); 

này sử dụng một quá tải của Enumerable.Count mà phải mất một vị Func<TSource, bool> để lọc các chuỗi.

5

Chỉ cần bao quanh truy vấn của bạn như sau: (from ... select n).Count().

18

Hãy thử điều này:

int specialBookCount = (from n in StoreDisplayTypeList 
         where n.DisplayType=="Special Book" 
         select n).Count() 

Nhưng nếu bạn cần dữ liệu là tốt, bạn có thể muốn để hoạt động với IEnumerable. Vì vậy, bạn có thể sử dụng truy vấn của bạn và truy cập Count() phương pháp mở rộng bất cứ khi nào bạn muốn.

var specialBook = from n in StoreDisplayTypeList 
        where n.DisplayType=="Special Book" 
        select n; 
int num = specialBook.Count();