Метод в ICollection в С#, который добавляет к нему все элементы другого ICollection

Есть ли какой-нибудь метод в ICollection в С#, который добавит все элементы другой коллекции? Прямо сейчас я должен всегда писать цикл foreach для этого:

ICollection<Letter> allLetters = ... //some initalization
ICollection<Letter> justWrittenLetters = ... //some initalization
... //some code, adding to elements to those ICollections

foreach(Letter newLetter in justWrittenLetters){
    allLetters.add(newLetter);
}

Мой вопрос: есть ли метод, который может заменить этот цикл? Как, например, метод addAll(Collection c) в Java? Поэтому я бы написал только что-то вроде:

allLetters.addAll(justWrittenLetters);

Ответ 1

Для ICollection такого метода нет. У вас есть два варианта: используйте другой тип, например List, который имеет метод AddRange() или, альтернативно, создайте метод расширения:

public static class CollectionExtensions
{
    public static void AddRange<T>(this ICollection<T> collection, IEnumerable<T> newItems)
    {
        foreach (T item in newItems)
        {
            collection.Add(item);
        }
    }
}