Учитывая существующий экземпляр ICollection<T>
(например, dest
), что является наиболее эффективным и читаемым способом добавления элементов из IEnumerable<T>
?
В моем случае использования у меня есть какой-то метод утилиты Collect(IEnumerable items)
, который возвращает новый ICollection
с элементами из items
, поэтому я делаю это следующим образом:
public static ICollection<T> Collect<T>(IEnumerable<T> items) where T:ICollection<T>
{
...
ICollection<T> dest = Activator.CreateInstance<T>();
items.Aggregate(dest, (acc, item) => { acc.Add(item); return acc; });
...
return dest;
}
Вопрос: есть ли какой-либо "лучший" способ (более эффективный или читаемый))?
ОБНОВЛЕНИЕ. Я думаю, что использование Aggregate()
довольно свободно и не так неэффективно, как вызов ToList().ForEach()
. Но это не очень читаемо. Поскольку никто не согласен с использованием Aggregate()
, я хотел бы прочитать ваши причины, чтобы НЕ использовать Aggregate()
для этой цели.