Хотя я, очевидно, не могу говорить о специфике вашего приложения, в большинстве случаев вам не следует привязывать вашу реализацию кэширования к некоторым предполагаемым ожиданиям того, как будет работать GC. Как отмечает Stu, вызов GC.Collect () приведет к принудительному сбору (с перегрузками для определенного поколения), но чаще всего это приведет к снижению производительности, чем просто позволить GC управлять собой.
Если вы обнаружите (после некоторого реального тестирования производительности), что вам нужно взаимодействовать с GC, убедитесь, что вы учитываете различные типы GC, которые в настоящее время есть в инфраструктуре (см. здесь информация).