给定一个 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/