gpt4 book ai didi

c# - LINQ 条件 where only when prop is not null

转载 作者:行者123 更新时间:2023-11-30 21:45:17 25 4
gpt4 key购买 nike

我有这一行:

products = products.Where(p => p.Brand.Equals(s) ||
p.CatCodeNaam.Equals(s) ||
p.SubCategoryName.Equals(s)).ToList();

这很好,直到没有 SubCategoryName

所以我尝试了:

var t = products.Where(p => p.Brand.Equals(s) ||
p.CatCodeNaam.Equals(s))
.Where(p => !string.IsNullOrWhiteSpace(p.SubCategoryName) && p.SubCategoryName.Equals(s));

但是如果没有SubCategoryName,它应该忽略它并且不过滤所以没有空集合。

我知道我可以通过让数据库返回一个空字符串 isnull(SubCategoryName,'') as SubCategoryName 来修复它,但我不想这样。我正在寻找 LINQ 修复程序。

一些测试数据来解释我的问题:

我有一个包含关键字的数组:

"car", "ford", "focus"

然后我使用 foreach 遍历关键字数组。

因为我不知道关键字是品牌、类别还是子类别,所以我必须检查它是否是其中之一。但是数据集 products 中的某些对象在子类别中具有空值,导致第一行崩溃。

最佳答案

反转条件:

s.Equals(p.SubCategoryName)

这样,如果 p.SubCategoryName 为 null 就没有关系了。

关于c# - LINQ 条件 where only when prop is not null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40303453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com