使用Linq获取列表的项目计数

我想查询List 并找出MANY项如何与选择条件匹配。 使用LINQ和c#/.net 3.5。 如何修改查询以返回int计数。

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

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

这使用了Enumerable.Count的重载,它使用Func谓词来过滤序列。

试试这个:

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

但是,如果您还需要数据,则可能需要使用IEnumerable进行操作。 因此,您可以随时使用查询并访问Count()扩展方法。

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

只需将您的查询包围如下:( (from ... select n).Count()