无法在 Linq 查询中使用 C# 列表筛选出记录

本文关键字:列表 筛选 记录 Linq 查询 | 更新日期: 2023-09-27 18:31:04

我的数据库中有一个产品表,它有一个字符串列来保存产品的颜色。

我正在尝试实现一项功能,用户可以通过选择多个颜色名称来搜索产品。为此,我使用的是包含多个颜色名称的 C# 列表。

List<string> colorNames = new List<string>() { "silver" };

上面的代码显示我目前只使用一种颜色来查找与"银色"匹配的产品。我使用的 Linq 查询如下所示:

context.Products.Where(prd => colorNames.Contains(prd.Color.ToLower().Trim()));

上面的代码运行没有任何错误,但我面临的问题是它返回的产品只有银色。但在数据库中也有现有的产品具有"浅银","深银红"等颜色。我希望我的 Linq 查询也返回这些产品。

我知道这是不可能的,因为查询将仅匹配银色,但我需要一个解决方法来执行此操作。

无法在 Linq 查询中使用 C# 列表筛选出记录

context.Products.Where(prd => colorNames.Any(col => prd.Color.ToLower().Trim().Contains(col)));

你可以试一试