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

时间:2017-12-28 19:29:12

标签: 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();

1 个答案:

答案 0 :(得分:5)

您当前代码的问题:

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

是你的针和干草堆向后。您需要在.ToString()上致电Any()这一事实应该会让您失望。 Any()会返回bool,您要将其转换为字符串,因此您只需检查 Title 是否包含字符串“True”。绝对不是你想要的。你想要更接近的东西:

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