2010-10-04 11 views
12

Ich möchte eine Liste <> abfragen und herausfinden, wie VIELE Artikel den Auswahlkriterien entsprechen. mit LINQ und C# /.net 3.5. Wie würde ich die Abfrage ändern, um eine int-Anzahl zurückzugeben.Erhalte Artikelanzahl einer Liste <> mit Linq

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

Antwort

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

Dieser verwendet eine Überlastung der Enumerable.Count, die ein Prädikat Func<TSource, bool> nimmt die Sequenz zu filtern.

5

Umgeben Sie einfach Ihre Abfrage wie folgt: (from ... select n).Count().

18

Versuchen Sie folgendes:

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

Aber wenn Sie Daten als auch benötigen, können Sie mit IEnumerable bedienen möchten. Sie können also Ihre Abfrage verwenden und jederzeit auf die Erweiterungsmethode Count() zugreifen.

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