Как получить доступ к фильтруемым элементам? Если это через итератор, то, возможно, вы могли бы написать собственный итератор, который пропускает элементы, которые вы не хотите видеть публично?
Если вам нужно предоставить Collection, вам может потребоваться написать собственный класс Collection, который просто проксирует базовый Collection, но запрещает доступ к элементам, которые вы не хотите видеть публично.
(Отказ от ответственности: я не очень знаком с C #, так что это общие ответы. Могут быть более конкретные ответы на C #, которые работают лучше)