как использовать "LIKE" в Linq to Object - PullRequest
3 голосов
/ 08 марта 2010

Я использую Linq to Object, теперь как я могу использовать что-то вроде «LIKE», используемое в SQL-запросе, для фильтрации данных?

Ответы [ 4 ]

3 голосов
/ 08 марта 2010

Используйте комбинацию Contains, StartsWith и EndsWith. Это все методы или методы расширения для System.String, которые будут работать с LINQ. Если это не решит вашу проблему, вы будете вынуждены использовать регулярные выражения.

2 голосов
/ 23 июня 2010

Попробуйте это

    string searchString = "NAME";
    List<string> lstNames = new List<string>()
                {"Name1"
                ,"Name2"
                ,"Name3"
                ,"Other names"
                ,"Something else"};

Приведенные ниже запросы выполнят работу

        var query1 = (from name in lstNames
                      where name.ToUpper().Contains(searchString)
                      select name);

        var query2 = lstNames.FindAll(name => name.ToUpper().Contains(searchString));

        var query3 = lstNames.Where(name => name.ToUpper().Contains(searchString));

Надеюсь, это поможет

1 голос
/ 08 марта 2010

Используйте Regex и вызовите метод IsMatch. Подстановочный знак % отображается на . *, а подстановочный знак ___ отображается на . .

0 голосов
/ 08 марта 2010

Откомандирован. Содержит, StartsWith и EndsWith являются эквивалентами. Нет "LIKE 'a% b'", но это редкий случай.

...