Отфильтруйте общий список с помощью строки динамического условия с помощью linq

1

Я использую.NET 3.5

У меня есть список объектов Company.cs.

Я хочу динамически записывать этот список с помощью LINQ, что означает, что пользователь вводит эту строку в текстовое поле:

(CompanyName = "Google") OR 
(Country = "Czech Republic") or
 (CompanyName = "Microsoft") AND
 (Country = "USA")

Как я могу использовать эту строку вместе с linq и предложением.Where() для фильтрации существующих объектов компании?

Или лучше вообще использовать DataTable и использовать метод Select?

  • 0
    Это на первый взгляд неприятный дизайн пользовательского интерфейса, который требует от пользователей ввода этого уровня сложности ... не так ли?
  • 0
    Подумайте о пересмотре вашего пользовательского интерфейса, используя несколько текстовых полей и / или несколько раскрывающихся списков, и каждое из них для фильтрации по полю.
Теги:
linq

1 ответ

-2

Проверьте библиотеку Dynamic LINQ.

Редактировать:

Извините, я вас неправильно понял.

Если у вас есть списки компаний и стран, например:

var compNames = new[] { "Boo", "Foo" };
var countries = new[] { "Germany", "Bubu" };

Затем вы можете фильтровать вот так:

from c in companies 
where compNames.Contains(c.Name) || countries.Contains(c.Country)
select c
  • 0
    Ему нужно сделать определенный фильтр Where для типа, известного во время компиляции, так зачем ему нужен Dynamic LINQ?
  • 0
    @SirajMansour ДА и НЕТ ... как я уже сказал, условие является строкой, определенной пользователем, который может быть консультантом, знающим sql ... Я хочу использовать LINQ с этой динамической строкой, и библиотека Dynamic Linq выглядит отлично!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню