Поиск Linq, который игнорирует, аннулирует

То, как я могу сделать поиск linq, который игнорирует, аннулирует (или nullables)?

У меня есть метод

IEnumerable<X> Search(int? a, int? b, int? c)

И я хочу это к ответным матчам на каком-либо из ints? это не является пустым.

IE: если a и c имейте значения 1 и 9 и b является пустым, поиск должен представить (примерно) к

SELECT * 
FROM [TABLE]
WHERE a = 1
AND c = 9

Мой реальный метод будет иметь 5 + параметры, так итерация комбинаций является правильной.

5
задан C. Ross 4 March 2010 в 01:25
поделиться

2 ответа

IEnumerable<X> query = items;
if (a.HasValue) {
    query = query.Where(x => x.a == a.Value)
}
if (b.HasValue) {
    query = query.Where(x => x.b == b.Value)
}
if (c.HasValue) {
    query = query.Where(x => x.c == c.Value)
}
5
ответ дан 14 December 2019 в 01:06
поделиться
var result = from row in table 
where (!a.HasValue || row.a == a.Value)
&& (!b.HasValue || row.b == b.Value)
&& (!c.HasValue || row.c == c.Value)
select row;
4
ответ дан 14 December 2019 в 01:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: