C#中的ICollection中的方法,它将另一个ICollection的所有元素添加到它

时间:2010-06-06 14:53:50

标签: c# collections

C#中的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);
}

我的问题是,是否有可以取代该循环的方法?比如Java中的方法addAll(Collection c)?所以我只会写一些像:

allLetters.addAll(justWrittenLetters);

1 个答案:

答案 0 :(得分:20)

ICollection没有这样的方法。您有两个选项,要么使用其他类型,例如具有AddRange()方法的List,要么创建扩展方法:

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