2015-11-30 1 views
2

J'ai une déclaration LINQ qui ressemble à:Comment paramétrer une expression booléenne dans Linq?

Report.Where(a=>a.Property == 1 || a.Property == 2 || a.Property == 3).Count() 

Je voudrais savoir si je peux factoriser la déclaration en quelque chose de la forme:

Report.Where(a=a.Property == validProperties) 

où je peux stocker un ensemble de validProperties sous la forme d'un tableau d'entiers.

Répondre

4

Vous pouvez utiliser la méthode Contains

var idsToCheck = new List<int> {1,2,3}; 

var someCount = Report.Where(a=>idsToCheck.Contains(a.Property)).Count(); 

Ou appelez le Count premier et passer l'expression lambda à cela.

var someCount = Report.Count(a => idsToCheck.Contains(a.Property)); 
+1

merci pour l'aide! –