在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);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,是否有可以取代该循环的方法?比如addAll(Collection c)Java中的方法?所以我只会写一些类似的东西:
allLetters.addAll(justWrittenLetters);
Run Code Online (Sandbox Code Playgroud)
s1m*_*m0t 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);
}
}
}
Run Code Online (Sandbox Code Playgroud)