Теперь он встроен в .net, но не уверен, что раньше этого не было. Учитывая существующий запрос Linq, вы можете добавить предложение where, которое принимает массив строк (SearchStrings), и проверить, соответствует ли какой-либо из них какой-либо объект в коллекции, которую вы ищете. Использование ToLower () просто гарантирует, что вы избежите чувствительности к регистру в SQL-запросах.
query.Where(i => SearchStrings.Any(s => i.ToLower().Contains(s.ToLower()));
Вы можете сделать то же самое для предиката 'и', сопоставив все слова в массиве с объектом коллекции.
query.Where(i => SearchStrings.All(s => i.ToLower().Contains(s.ToLower()));
В этом примере я коррелирую с каждым объектом в коллекции, а s - с каждой строкой в массиве SearchStrings.