Clause linq with 2 parameter with operator OR don't retrieve the values correctly

Clause linq with 2 parameter with operator OR don´t retrieve the values correctly

我的问题是,我有一个带有带有 2 个参数的 where 子句的 linq 查询, 第一个参数来自全局过滤器,第二个参数来自列过滤器。

当我在全局过滤器中输入值时,我没有在列过滤器中输入任何值(列将为 string.empty),我没有返回任何值,但我应该有。

好像一切都还好,就是不知道哪里错了

string search = Request.Form.GetValues("search[value]")[0];
var column= Request.Form.GetValues("columns[0][search][value]").FirstOrDefault() ?? string.Empty;

            var dataResut = data.Where(
                                p => 
                               p.ProductName.ToLower().Contains(search.ToLower()) || p.ProductName.ToLower().Contains(column.ToLower())
                                ).ToList();

我在这里缺少什么:(

提前致谢。

乔丽妮丝

请试试这个

var dataResut = data.Where(
                            p =>
                           (string.IsNullOrEmpty(search) ? false : p.ProductName.ToLower().Contains(search.ToLower())) || (string.IsNullOrEmpty(column) ? false : p.ProductName.ToLower().Contains(column.ToLower()))
                            ).ToList();