Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.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# linq to sql中where子句条件的动态数目_C#_Linq To Sql - Fatal编程技术网

C# linq to sql中where子句条件的动态数目

C# linq to sql中where子句条件的动态数目,c#,linq-to-sql,C#,Linq To Sql,我试图在一个数据表中搜索包含任何单词列表的所有条目。列表的字数可以是可变的。这是我现在的代码: string[] Words = InitialString.Split(' '); foreach (string word in diseaseWords) { List<mrconso_SnoMed2014> curMatches = (from a in masterDB.mr

我试图在一个数据表中搜索包含任何单词列表的所有条目。列表的字数可以是可变的。这是我现在的代码:

string[] Words = InitialString.Split(' ');

                foreach (string word in diseaseWords)
                {
                    List<mrconso_SnoMed2014> curMatches = (from a in masterDB.mrconso_SnoMed2014s
                                                        where a.STR.ToLower().Contains(word.ToLower().Trim())
                                                        select a).ToList();
                    matches.AddRange(curMatches);
                }
string[]Words=InitialString.Split(“”);
foreach(单词中的字符串)
{
列出curMatches=(来自masterDB.mrconso\u SnoMed2014s中的a)
其中a.STR.ToLower()包含(word.ToLower().Trim())
选择一个.ToList();
matches.AddRange(curMatches);
}
此代码的执行时间太长。所有数据库调用都需要时间。我想使用一些动态查询,其中包含数量可变的where子句。比如:

List<mrconso_SnoMed2014> curMatches = (from a in masterDB.mrconso_SnoMed2014s
                                                            where a.STR.ToLower().Contains(Words[0].ToLower().Trim())
                                                            or a.STR.ToLower().Contains(Words[1].ToLower().Trim())
                                                            ...
                                                            select a).ToList();
list1.Select(s=>s.STR.ToLower).Intersect(list2.Select(s=>s.ToLower().Trim()))
List curMatches=(来自masterDB.mrconso\u SnoMed2014s中的a)
其中a.STR.ToLower()包含(字[0].ToLower().Trim())
或a.STR.ToLower().Contains(单词[1].ToLower().Trim())
...
选择一个.ToList();

您可以从LINQ使用Intersect,看起来像:

List<mrconso_SnoMed2014> curMatches = (from a in masterDB.mrconso_SnoMed2014s
                                                            where a.STR.ToLower().Contains(Words[0].ToLower().Trim())
                                                            or a.STR.ToLower().Contains(Words[1].ToLower().Trim())
                                                            ...
                                                            select a).ToList();
list1.Select(s=>s.STR.ToLower).Intersect(list2.Select(s=>s.ToLower().Trim()))