Как отфильтровать List<T>

105
17 декабря 2020, 09:30

Есть checkedlistbox. В нем несколько строк (см. картинка). Также есть List<T>, который я хочу отфильтровать по выбранным полям. Сейчас я делаю вот так.

foreach (object itemChecked in filterChecked.CheckedItems)
     {
      if (itemChecked.ToString() == "Есть дата первых торгов")
          {
            list.Where(x => x.Pole.ToString() != "");
          }....
     }

Можно ли использовать фильтрованный список. Сделать что то типа этого?

list.FilteredItems

Answer 1

Если я правильно понял, нужно следующее:

IEnumerable<Foo> result = list;
foreach (object itemChecked in filterChecked.CheckedItems)
{
    if (itemChecked.ToString() == "Есть дата первых торгов")
    {
        result = result.Where(x => x.Pole.ToString() != "");
    }
    if (itemChecked.ToString() == "Пустая графа вторых торгов")
    {
        result = result.Where(x => x.PoleA.ToString() != "условие");
    }
    if (itemChecked.ToString() == "Движимое имущество")
    {
        result = result.Where(x => x.PoleB.ToString() != "условие");
    }
    // и т. д.
}
var filteredList = result.ToList();
Answer 2
var selectedNames = filterChecked.CheckedItems.Select(x => x.ToString());
var filteredList = list.Where(x => selectedNames.Contains(x.Pole)).ToList();
Answer 3

Можно задать словарь с ключами вида элементов CheckedListBox и значениями в виде фильтрующего условия.

var source = new Dictionary<string, Func<T, bool>>();

Заполнить filterChecked ключами словаря.

Фильтрация сократится до

foreach (var condition in filterChecked.CheckedItems)
{
   list = list.Where(source[condition.ToString()]);
}
READ ALSO
Не получается добавить foreign key

Не получается добавить foreign key

Не добавляется foreing keyПроверил столбцы на null,таблицы пустые,типы подходят,длина тоже Уже не знаю что делать,завтра курсовая

143
Отсутствует файл error log

Отсутствует файл error log

На хостинге(cpanel) в диспетчере почему-то отсутствует файл error log, можно как-то настроить его отображение? добавление в начале проблемного скрипта...

117
Не выводит изображение Laravel

Не выводит изображение Laravel

Не выводит изображение в blade шаблонеВсе остальное отображается корректно

144