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