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);
答案 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);
}
}
}