Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果名称包含任何正在搜索的单词,如何筛选查询结果?_C#_Linq To Sql_Filter - Fatal编程技术网

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)
选择基金;