Добавить диапазон в коллекцию
Коллега спросил меня сегодня, как добавить диапазон в коллекцию. У него есть класс, который наследует отCollection<T>
, Есть свойство get-only этого типа, которое уже содержит некоторые элементы. Он хочет добавить элементы из другой коллекции в коллекцию свойств. Как он может сделать это в стиле C # 3?(Обратите внимание на ограничение относительно свойства get-only, которое не позволяет таким решениям, как объединение и переназначение.)
Конечно, foreach с собственностью. Добавить будет работать. НоList<T>
Стиль AddRange был бы гораздо более элегантным.
Достаточно просто написать метод расширения:
public static class CollectionHelpers
{
public static void AddRange<T>(this ICollection<T> destination,
IEnumerable<T> source)
{
foreach (T item in source)
{
destination.Add(item);
}
}
}
Но у меня такое чувство, что я заново изобретаю колесо. Я не нашел ничего подобного вSystem.Linq
или жеmorelinq.
Плохой дизайн? Просто позвоните Добавить? Отсутствует очевидное?