У меня есть список строк IEnumerable<string> companies
, содержащие компании i.e. mcdonalds, sony inc.linq-to-query и содержит для IEnumerable <string>?
Я хочу сравнить со значениями в базе данных. Я хватаю список из базы данных и в цикле Еогеасп я сравниваю
if (companies.Any(c => c.Contains(name.ToLower())))
{...}
в базе данных у меня есть компании, т.е. Макдоналдс вкл, сони
при поиске с помощью «сони» он находит его. Когда я ищу, используя «mcdonalds inc», это не так. из-за дополнительного слова «inc»
Я знаю, что сравниваю company.any (содержит (mcdonalds inc)), и он не находит его.
Любая предполагая о том, как я могу продлить, если условие также сравнить с помощью стиха
Вы уверены, что место в 'mcdonalds inc' на самом деле является пространством? Код, который вы опубликовали, должен работать так, как вы ожидаете, хотя я бы сделал ставку на лучшее решение. –
Возможно, вам придется отфильтровать список в памяти. Не существует синтаксиса SQL, чтобы узнать, начинается ли значение с любого значения в списке, не вставляя его в несколько условий (например, 'WHERE x LIKE 'mcdonalds%' ИЛИ x LIKE 'sony%' OR ...' или делать соединение в таблицу in-memory, ни одна из которых не поддерживается Linq-to-SQL) –