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 rel="noreferrer">morelinq.
Bad
design? Just Call Add? Missing the obvious?
No comments:
Post a Comment