views:

138

answers:

4

Hi,

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;
+2  A: 

Just surround your query like this (from ... select n).Count()

Edgar Sánchez
+3  A: 

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();
MAKKAM
+6  A: 
 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.

Ani
+2  A: 

Simply add:

int count = specialBook.Count();

Count() is a Linq extention method for the IEnumerable type.

jjnguy