2010-11-02 6 views
1

J'essaye d'écrire une requête LINQ sur certains objets où je dois seulement faire une sélection si une valeur de filtre est définie.Perdu avec LINQ et expressions

Existe-t-il un moyen de "modifier" dynamiquement la requête pour ne faire qu'une sélection si elle est définie.

+5

Votre question manque suffisamment de détails pour pouvoir y répondre intelligemment. –

+0

Est-ce bon LINQ aux objets, ou l'un des cousins ​​LINQ à SQL ou LINQ aux entités? Cela ferait une énorme différence dans l'écriture d'une réponse. –

+1

Pourriez-vous donner plus de contexte? Peut-être du code? –

Répondre

1
var query = Somthing().Where(x => x.IsSomethingYouAlwaysFilterBy); 
if(FilterValueIsSet(filterValue)) 
{ 
    query = query.Where(x => x.Property == filterValue) 
} 
4

Utilisez where pour trouver les points d'intérêt, .: par exemple

collection.Where(i => PassesFilter(i)).Select(i => i.InterestingValue); 
Questions connexes