问题
I want to query a List<> and find out how MANY items match the selection criteria. using LINQ and c# /.net 3.5. How would I modify the query to return an int count.
var specialBook = from n in StoreDisplayTypeList
where n.DisplayType=="Special Book"
select n;
回答1:
var numSpecialBooks = StoreDisplayTypeList.Count(n => n.DisplayType == "Special Book");
This uses an overload of Enumerable.Count that takes aFunc<TSource, bool>
predicate to filter the sequence.
回答2:
Try this:
int specialBookCount = (from n in StoreDisplayTypeList
where n.DisplayType=="Special Book"
select n).Count()
But if you need data as well, you might want to operate with IEnumerable. So, you can use your query and access Count() extension method whenever you want.
var specialBook = from n in StoreDisplayTypeList
where n.DisplayType=="Special Book"
select n;
int num = specialBook.Count();
回答3:
Just surround your query like this: (from ... select n).Count()
.
来源:https://stackoverflow.com/questions/3853010/get-item-count-of-a-list-using-linq