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

sel*_*ams 3 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();
Run Code Online (Sandbox Code Playgroud)

aqu*_*nas 5

您当前代码的问题:

var results = context.activities.Where(a => 
                  a.Title.Contains(searchwords.Any().ToString())).ToList();
Run Code Online (Sandbox Code Playgroud)

是你的针和干草堆向后.你需要调用的事实.ToString()Any()应该可以告诉你.Any()返回一个bool,你要转换为一个字符串,所以你只是检查是否Title包含字符串"True".绝对不是你想要的.你想要更接近的东西:

var results = context.activities
                 .Where(a => searchwords.Any(searchWord => a.Title.Contains(searchWord)));
Run Code Online (Sandbox Code Playgroud)