如何进行忽略null(或nullables)的linq搜索?
我有一个方法
IEnumerable<X> Search(int? a, int? b, int? c)
Run Code Online (Sandbox Code Playgroud)
我想让它返回任何一个整数的匹配?不是空的.
IE:如果a
并且c
值为1和9并且b
为null,则搜索应该(大致)呈现
SELECT *
FROM [TABLE]
WHERE a = 1
AND c = 9
Run Code Online (Sandbox Code Playgroud)
我的真实方法将有5个以上的参数,因此迭代组合就是正确的.
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)
}
Run Code Online (Sandbox Code Playgroud)