2016-04-10 2 views
1

Я пишу алгоритм поиска. Для последней части я хочу разбить их поиск на отдельные слова, а затем найти любые результаты, в которых есть хотя бы одно из этих слов. Есть ли какая-нибудь функция, которая будет работать над «ContainsAny» ниже? В противном случае, как я могу это сделать?Найти результаты по крайней мере Один термин из массива

string[] splitStr = text.Split(); 
result = db.Table.Where(x => x.Name.ContainsAny(splitStr).FirstOrDefault(); 

Например, если они ищут «Metal Ложка» как «Metal Chair» и «ложка книги» будет достоверных результатов, поскольку каждый из которых содержит по меньшей мере одно из условий поиска.

+0

регулярного выражения или пересекаются –

ответ

1

Там нет ContainsAny, но вы можете использовать комбинацию из Any и Contains так:

var results = db.Table.Where(x => splitStr.Any(s => x.Name.Contains(s))); 
Смежные вопросы