Метод в 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);
}
}
}