c# - Linq 返回实体中的所有记录,其中字段包含列表中的一个或多个单词

标签 c# linq

给定一个 List<string>如何返回实体中的所有记录,该实体的字段包含列表中的一个或多个词。

我尝试了以下不起作用的方法,我开始绕圈子了:

List<string> searchwords = new List<string>() {"word1","word2"};

var results = context.activities
    .Where(a => a.Title.Contains(searchwords.Any().ToString())).ToList();

最佳答案

你当前代码的问题:

var results = context.activities.Where(a => 
                  a.Title.Contains(searchwords.Any().ToString())).ToList();

是你的针头和大海捞针倒了过来。您需要在 Any() 上调用 .ToString() 这一事实应该已经提示您了。 Any() 返回一个 bool,您将其转换为字符串,因此您只是检查是否 Title 包含字符串“True”。绝对不是你想要的。你想要更接近于:

var results = context.activities
                 .Where(a => searchwords.Any(searchWord => a.Title.Contains(searchWord)));

关于c# - Linq 返回实体中的所有记录,其中字段包含列表中的一个或多个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48013236/

相关文章:

c# - int[,] 的数独求解器算法

c# - 如何在 Visual Studio 中围绕等号反转代码?

c# - 自数据库创建以来支持 'MyContext' 上下文的模型已更改

c# - 是否可以使用 LINQ 合并堆栈

c# - LINQ:基于子列表中的属性分组

c# - 在 SharePoint 中创建指向文档的编辑链接

c# - listview添加新的item控件

c# - 在 where 子句中组合两个 LINQ 条件

c# - 为此排序 lambda 表达式

linq - 如果我从我的服务层公开 IQueryable,如果我需要从多个服务中获取信息,数据库调用会不会更少?