Linq поиск (.Contains) сразу по всем элементам в строках? - PullRequest
0 голосов
/ 26 июня 2018

Есть ли способ выполнить поиск содержимого в linq по всем строкам одновременно, а не перечислять их.

В данный момент я делаю

    Data.Where(
        x => x.Name.Contains(searchValue) ||
        x.Address.Contains(searchValue) || 
        x.Id.ToString().Contains(searchValue)... etc

Что бы я хотел сделать, это передать универсальный и выполнить поиск по всем данным в строках?

например, Data.Where (x => row.Contains (searchValue))

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Вы можете добавить свойство для вашего типа данных с помощью метода получения, который объединяет другие свойства:

public string JoinedProperty{
   get{
      return Name+" "+Id.ToString();
   }
}

и тогда этот код может вам помочь

Data.Where(
    x => x.Contains(searchValue) ... etc
0 голосов
/ 26 июня 2018

Дубликат запроса LINQ любого из свойств содержит строку

Вы можете использовать отражение, но это не очень хорошо для производительности

list.Where(x => x.GetType()
            .GetProperties()
            .Any(p =>
            {
                var value = p.GetValue(x);
                return value != null && value.ToString().Contains("some string");
            }));

EDIT : Как Фабио сказал, что это будет фильтровать список в памяти, а не в sql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...