|
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
|
||||||
Конструктор фильтра03.04.2018, 12:30. Показов 6425. Ответов 37
Метки нет (Все метки)
Добрый день!
Хочу сделать что-то вроде универсального метода - конструктора фильтра. В качестве входных параметров предполагается: 1. List<string> PropNames - коллекция имен свойств. Есть свойства, которые присущи нескольким классам. Сами свойства есть экземпляры классов-справочников, которые наследуются от базового класса
3. List<SomeEntity> InList - коллекция, предполагаемая к фильтрованию. Выходные параметры: 1. List<SomeEntity> OutList - отфильтрованная коллекция. Не знаю с какой стороны подступиться к решению. Готов выслушать любые предложения/идеи.
0
|
||||||
| 03.04.2018, 12:30 | |
|
Ответы с готовыми решениями:
37
Определить конструктор без параметров, конструктор с одним параметром, конструктор с двумя параметрами, деструктор
Какой метод синтеза фильтра обеспечивает наименьшее число параметров фильтра при заданных ограничениях АЧХ? |
|
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
|
|
| 06.04.2018, 14:25 [ТС] | |
|
Storm23, спасибо! Мне казалось, что я уже два раза объяснил логику фильтра
. Может быть плохо ![]() В общем, последний код выглядит и работает именно так как хочется. Остался маленький штрих - изменить логику фильтра с OR на AND. Т.е. выбирать из коллекции SomeMainClass только те сущности, все Id свойств которых входят в свои допустимые коллекции.
0
|
|
|
|
||||||||
| 06.04.2018, 17:06 | ||||||||
Сообщение было отмечено wrq2017 как решение
РешениеНа самом деле, даже сейчас есть неоднозначность - непонятно нужно отбирать по AND только среди тех свойств которые присутствуют в объекте, или же все свойства должны обязательно присутствовать в объекте. Если второе, то метод может выглядеть вот так:
1
|
||||||||
|
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
|
||||||||
| 09.04.2018, 14:11 [ТС] | ||||||||
... Поэтому, лучшие решения приходят по ходу реализации. Например, как мы уже определились, есть классы-справочники, скажем: A, B, C, D, E и т.д. Основные (фильтруемые) классы имеют свойства этих классов, например, класс MainClass1: A, B, D; MainClass2: B, C, D; MainClass3: B, D, E. Изначально я предполагал, что я буду для каждого фильтруемого класса самостоятельно определять перечень классов (имен свойств) и их значений для фильтрации. Но, сейчас я думаю - а зачем? Можно ведь всю коллекцию фильтров прогнать через некий универсальный метод и, если свойство данного класса-справочника у MainClass в наличии, то соответствующая коллекция отфильтруется, а если нет, то и не надо ![]() Логично? Или это не очень эффективно? И еще у меня второй вопрос по последнему коду: Я понимаю, что присвоение
0
|
||||||||
|
|
|||
| 09.04.2018, 17:42 | |||
|
Если у вас лямбда внутри цикла, то нужно сделать копию переменной, перед тем, как передать ее в лямбду. https://stackoverflow.com/ques... le_rich_qa https://blogs.msdn.microsoft.c... d-harmful/ Добавлено через 7 минут
1
|
|||
|
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
|
|||||||
| 10.04.2018, 16:55 [ТС] | |||||||
|
Добавлено через 7 часов 4 минуты Storm23, с фильтрацией по свойствам-справочникам разобрались. А как сделать универсальный метод фильтрации по свойству типа DateTime (свойства могут называться по разному, название свойства будет параметром)? Фильтрация должна быть вроде:
0
|
|||||||
|
|
||||||||
| 10.04.2018, 19:16 | ||||||||
1
|
||||||||
|
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
|
|
| 11.04.2018, 09:56 [ТС] | |
|
Storm23, огромное спасибо!!! Я получил исчерпывающие ответы на вопросы по фильтрации (как я себе её представляю
). Будем считать тему закрытой.
0
|
|
|
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
|
||||||
| 20.04.2018, 14:44 [ТС] | ||||||
|
Storm23, поторопился я закрывать тему. Как обойти ошибку, если одно из свойств фильтруемого члена коллекции равно null?
Пример:
По логике, такие члены нужно исключить из коллекции, пропустить их.
0
|
||||||
|
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
|
|||||||
| 28.04.2018, 09:48 [ТС] | |||||||
|
Добавлено через 4 минуты Ой, сорри, работает, ошибка в другом месте ![]() Добавлено через 17 минут Storm23, еще вопрос. Для фильтрации по датам используется следующая конструкция:
0
|
|||||||
|
|
||||||||||||
| 28.04.2018, 10:40 | ||||||||||||
0
|
||||||||||||
|
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
|
|||||||
| 28.04.2018, 12:54 [ТС] | |||||||
0
|
|||||||
|
|
|||||||
| 28.04.2018, 13:00 | |||||||
0
|
|||||||
|
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
|
||
| 28.04.2018, 13:02 [ТС] | ||
|
0
|
||
|
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
|
|||||||||||
| 21.06.2018, 13:41 [ТС] | |||||||||||
|
Storm23, возвращаясь к вышеизложенному. Не могу никак победить такой случай. Если значение свойства null, то элемент коллекции тоже должен попадать в результат выборки (в случае если значение фильтра 0). Как это можно сделать?
И сопутствующий вопрос - почему при дебаге не осуществляется вход в метод Where? Добавлено через 2 часа 44 минуты Везде, где было != null поубирал по тексту, но всё равно результата нет. Добавлено через 18 минут Вот если убрать строку
0
|
|||||||||||
|
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
|
|
| 22.06.2018, 10:04 [ТС] | |
|
Storm23, да в принципе уже не важно
Работает. Сейчас интересует второй, больше теоретический вопрос, если значение объекта null - значит ли это, что его тип невозможно определить?
0
|
|
|
|
||
| 22.06.2018, 12:52 | ||
|
Тип несуществующего объекта определить невозможно, что логично. Можно определить тип переменной, в которой хранится этот null.
1
|
||
| 22.06.2018, 12:52 | |
|
Помогаю со студенческими работами здесь
38
Не могу сделать чтобы класс содержал основной конструктор и конструктор копирования Конструктор класса, конструктор копирования запускается не тот который нужен this(Всегда ли вызывается конструктор при не явной передачи объекта в конструктор) Будет ли определен компилятором конструктор по умолчанию, если есть конструктор с дефолтным параметром?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|