2010-11-22 4 views
1

j'ai une collection de Order objets et chaque objet Order a 1 ou plusieurs Card objets qu'il contient (dans un generic List object called Cards.Linq (groupBy?) Question

Maintenant, je veux connaître le nombre total de cartes, en un numéro.

Je ne reçois pas ensemble, et l'IntelliSense Linq juste ne fait aucun sens pour moi ....

Répondre

4

Vous pouvez obtenir le nombre de cartes en utilisant

yourCollection.Sum(o => o.Cards.Count); 
+0

grâce, si simple, et pourtant ne pas penser il – Michel

2
int totalCount = orders.Sum(order => order.Cards.Count); 
1

Laissez-vous:

class Order 
{ 
    public List<Card> Cards { get; set; } 
} 

Puis:

IEnumerable<Order> orders = .. 
int cards = orders.Sum(o => o.Cards.Count); 
2

Peut être cartes sont nulles:

orders.Sum(p => p.Cards == null?0:p.Cards.Count);