Нет способа выделить непосредственно в поколении 2. Все распределения происходят в поколении 0 и для больших объектов в LOH.
Однако данные, как правило, не копируются при перемещении объектов в новое поколение. Вместо этого перемещаются начальные точки разных куч. Объекты могут быть перемещены из-за сжатия кучи, но это другая история.
Если важно хранить объекты в поколении 2, вы можете использовать экземпляры повторно. То есть создайте метод init для типов и вызывайте его вместо создания новых экземпляров.