Monday, May 20, 2019

c# - AddRange to a Collection

A coworker asked me today how to add a range to a collection. He has a class that inherits from Collection. There's a get-only property of that type that already contains some items. He wants to add the items in another collection to the property collection. How can he do so in a C#3-friendly fashion? (Note the constraint about the get-only property, which prevents solutions like doing Union and reassigning.)


Sure, a foreach with Property. Add will work. But a List-style AddRange would be far more elegant.


It's easy enough to write an extension method:


public static class CollectionHelpers
{
public static void AddRange(this ICollection destination,
IEnumerable source)
{
foreach (T item in source)
{
destination.Add(item);
}
}
}

But I have the feeling I'm reinventing the wheel. I didn't find anything similar in System.Linq or morelinq.


Bad design? Just Call Add? Missing the obvious?

No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...