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

问题描述 投票:17回答:3

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

var specialBook = from n in StoreDisplayTypeList 
                  where n.DisplayType=="Special Book" 
                  select n;
c# linq asp.net-3.5
3个回答
42
投票
 var numSpecialBooks = StoreDisplayTypeList.Count(n => n.DisplayType == "Special Book");

这使用Enumerable.Count的重载,它采用aFunc<TSource, bool>predicate来过滤序列。


19
投票

试试这个:

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();

5
投票

只需围绕您的查询:(from ... select n).Count()

© www.soinside.com 2019 - 2024. All rights reserved.