需要使用linq搜索多个单词

本文关键字:单词 搜索 linq | 更新日期: 2023-09-27 17:52:50

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

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

例2:"Tata Consultancy Services"如果用户输入这个,它仍然可以使用包含并轻松获得记录。但问题是,如果用户只输入"塔塔服务"或语法错误输入"塔塔咨询服务",我仍然想显示由这三个词中的任何一个组成的记录。塔塔/Consutult/服务。

这个搜索是动态的,不限于3,它将是一个数组。我可以用空格分隔单词

需要使用linq搜索多个单词

使用Any扩展方法:

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