Joh*_*ohn 1 c# linq linq-to-entities
我有一个基于字符串的搜索参数列表:
ie {"partialName1","partialName2","partialName3",...,"partialName(N)"}我永远不会知道N的大小是什么.
我想通过迭代这个字符串集合来编写一个Linq(Linq-to-Entities)"OR"查询,并编写一个等同于下面查询的查询:
var specialFolk = people.Where(p => p.Name.Contains("partialName1") || p.Name.Contains("partialName2") || p.Name.Contains("partialName3") || ... || p.Name.Contains("partialName(N)"));
Run Code Online (Sandbox Code Playgroud)
以下代码演示了我想要做的事情.但它不起作用,它只是我想用于以可组合方式构建OR查询的概念的说明
List<string> searchPhrases = searchPhraseGiveToUsFromAbove;
IQueryable<Person> personQuery;
foreach(string searchPhrase in searchPhrases)
{
personQuery = personQuery.Where(p=>p.Name.Contains(searchPhrase))
}
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?
你应该以相反的方式比较它:
var query = personQuery.Where(p => searchPhrases.Any(r=> p.Name.Contains(r));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
283 次 |
| 最近记录: |