2014-03-24 60 views
0

我有一个要求,用户来到并输入搜索词的基础上,我需要使用linq查询并显示记录。例如:需要使用linq搜索多个词

搜索例1:“Infosys”如果用户输入infosys作为搜索词,我可以使用contains和轻松获得结果。例如:

例2:“塔塔咨询服务”如果用户输入,我仍然可以使用包含并轻松获取记录。但是,如果用户输入“塔塔服务”或语法错误为“Tata constult service”,那么这个问题仍然存在。我仍然想要显示由3个单词中的任何一个组成的记录。塔塔/ Consutult /服务。

此搜索是动态的,不限于3它将是一个数组。我可以将空格分开。

回答

3

使用Any扩展方法:

string queryString = "Tata Services"; 
var queryParts = queryString.Split(' '); 
var result = Records.Where(r => queryParts.Any(p => r.Name.Contains(p)));