2010-06-07 4 views

Répondre

16

Vous pourriez chaîne deux bits de LINQ ensemble comme ceci:

return MyArray.Where(r => r.CanDrive).Sum(r => r.Trips); 
+0

Qu'est-ce qui est avec la parenthèse de tête? – Codesleuth

+0

@Codesleuth - gros doigts! Merci ... –

+0

Votre baguette de numérotation est dans le post :) – MPritchard

10

La réponse de David est tout à fait correct, mais une autre alternative pourrait être d'utiliser un opérateur conditionnel:

return MyArray.Sum(r => r.CanDrive ? r.Trips : 0); 

Je voudrais personnellement utiliser le formulaire Where, mais je pensais que je présenterais une alternative ...

(Encore une autre alternative serait de créer votre propre Sum méthode qui a pris à la fois un prédicat et une projection, mais je pense que c'est sur le dessus.)

Questions connexes