Мы часто пишем подобные методы:
List<int> GetItems() { var items = new List<int>(); ... return items; }
В этом методе мы просто собираем элементы и возвращаем.
При этом создаем список, создание которого мы не можем запретить извне. Для этого лучше писать таким образом:
void GetItems(List<int> items) { ... }
Таким образом контроль над списком может быть таким:
var list = GetFromPool(); GetItems(list); ... ReturnToPool(list);