我有一个将自由文本作为搜索输入的文本框,并且我有一个 LINQ
查询,我想用这种类型的搜索进行扩展。
输入可能类似于 “big blue car”
,这应该会导致查询搜索包含所有这些词的标题。
还有一个选项可以切换到“任何词”而不是“所有词”。
将此添加到我的 LINQ
查询的最佳/最简单方法是什么?
查询现在看起来像
from b in books
where b.InStore == true && b.Price > 10 && title.Contains()...at this point i want to add the text search.
select b
最佳答案
我强烈建议您使用两个查询来完成!
但是看看这个,是不是很酷?
var searchAll = true;
var words = List<string>{"big", "blue", "car"};
from b in books
where (...) (searchAll && words.All(x => title.contains(x))) ||
(!searchAll && words.Any(x => title.Contains(x)))
select b
但你真的应该用两个不同的查询来完成。
关于c# - 为 n 个关键字和 AND/OR 选项实现 Linq 搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10158464/