我正在尝试在数据表中搜索具有任何单词列表的所有条目。该列表可以具有可变数量的单词。这是我现在的代码:
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);
}
此代码执行时间过长。所有数据库调用都需要时间。我想使用一些具有可变数量的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();
答案 0 :(得分:0)
您可以使用LINQ中的Intersect,类似于:
list1.Select(s=>s.STR.ToLower).Intersect(list2.Select(s=>s.ToLower().Trim()))