Класс, позволяющий создавать списки (фильтры), содержащими включенные или исключенные объекты, и оперировать с ними.
Например, нам нужно реализовать фильтр по цветам. Варианты фильтра:
- все доступные цвета кроме синего и розового
- все доступные цвета
- только желтый и зеленый
- ни один из доступных цветов
при этом доступных цветов может быть очень много, хранить все разрешенные/все запрещенные в объекте может быть нецелесообразно.
Поддерживаемые функции:
- объединение включающих/исключающих списков (Concat)
- пересечение включающих/исключающих списков (Intersect)
- проверка на принадлежность элемента списку (Contains)
- преобразование списка (Select)
- получение включенных элементов по полному набору значений (GetAllItems)
- вычитание из фильтра (Substract)
Начать работу проще всего с примеров использования, доступных в юнит-тестах