Я здесь, чтобы задать вопрос о том, как выглядит код, когда дело доходит до расширенной фильтрации в C# с LINQ. У меня есть опыт работы с Linq, но это то, что было вне моего понимания.Расширенная фильтрация в linq
Допустим, у нас есть класс Item
, который имеет свойства (string)Name
, (bool)New
и (int)Price
и пользователи должны ввести свои фильтры и получить результаты, которые им нужны.
Допустим, мы помещаем 5 объектов в список list
, который представляет собой список предметов.
new Item("Pen",true,12);
new Item("PostIt",false,35);
new Item("Phone",true,140);
new Item("Watch",true,5);
new Item("Lavalamp",false,2);
Теперь я woud хотел обработать эту информацию, чтобы получить .. Все новые времена, которые стоят более 10. Я знаю, что могу сделать это с
List<Item> Results = list.where(item => item.Price> 10 && item.New).ToList();
но что, если пользователь хочет получить все которые стоят более 10 независимо от того, являются ли они новыми или нет. Я не могу изменить запрос во время выполнения, чтобы он соответствовал потребностям, и я не думаю, что создание запроса для каждой возможной комбинации входных параметров - правильный способ сделать это ... Может ли кто-нибудь дать мне пример о том, как это сделать?
Возможно это? [Источник CS-Script] (https://csscriptsource.codeplex.com/wikipage?title=Choosing%20Compiler%20Engine) – Fabio
LINQ является составным. Вы можете условно применять другие фильтры, но вы хотите по одному - не нужно указывать их все в одном 'Where'. – Luaan
Возможный дубликат [Объединить запросы LinQ] (http://stackoverflow.com/questions/9804683/combine-linq-queries), это был запрос, который я использовал для объединения запросов, но вы можете создать большой список вещей в зависимости от различные критерии, а затем запустить их. – BugFinder