C# 如果名称包含任何正在搜索的单词,如何筛选查询结果?
我试图修改一些从数据库返回结果的代码。目前,代码如下所示,并匹配任何基金名称,如搜索词C# 如果名称包含任何正在搜索的单词,如何筛选查询结果?,c#,linq-to-sql,filter,C#,Linq To Sql,Filter,我试图修改一些从数据库返回结果的代码。目前,代码如下所示,并匹配任何基金名称,如搜索词 var ret = (from funds in queryable where SqlMethods.Like(funds.Name, searchTerm) select funds); 问题是它太具体了。如果搜索词是“养老金增长”,它将只返回名
var ret = (from funds in queryable
where
SqlMethods.Like(funds.Name, searchTerm)
select
funds);
问题是它太具体了。如果搜索词是“养老金增长”,它将只返回名称中包含“养老金增长”的结果。我想将此更改为返回名称中包含“退休金”或“增长”的所有基金(或用户可能包含的搜索词的任何组合)
我想做的是将搜索词拆分为它的组成部分,并对查询应用SQL“in”操作符,如in('pension','growth')
或其他什么,这样它将返回任何包含一些词的内容,但这似乎不是一个选项
有人能给我建议另一种方法吗?谢谢。您可以尝试在列表中使用
Contains()
方法:
var myListOfWords = new List<string>{"pension","growth","42"};
var result = from funds in queryable
where myListOfWords.Contains(funds.Name)
select funds;
var myListOfWords=新列表{“养老金”、“增长”、“42”};
var结果=来自可查询的基金
其中myListOfWords.Contains(funds.Name)
选择基金;