Метод в ICollection в C #, который добавляет все элементы другой ICollection в него - PullRequest
13 голосов
/ 06 июня 2010

Есть ли какой-нибудь метод в ICollection в C #, который бы добавил все элементы другой коллекции? Сейчас я всегда должен написать цикл 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 Ответ

20 голосов
/ 06 июня 2010

Нет такого метода для 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);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...