AddRange zu einer Sammlung

Ein Kollege hat mich heute gefragt, wie ich einer Sammlung einen Bereich hinzufügen soll. Er hat eine Klasse, von der erbtCollection<T>. Es gibt eine Nur-Holen-Eigenschaft dieses Typs, die bereits einige Elemente enthält. Er möchte die Elemente in einer anderen Sammlung zur Eigenschaftensammlung hinzufügen. Wie kann er das C # 3-freundlich tun?(Beachten Sie die Einschränkung für die Eigenschaft get-only, die verhindert, dass Lösungen wie Union ausgeführt und neu zugewiesen werden.)

Klar, ein foreach bei Property. Hinzufügen wird funktionieren. Aber aList<T>-Stil AddRange wäre weitaus eleganter.

Es ist einfach genug, eine Erweiterungsmethode zu schreiben:

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

Aber ich habe das Gefühl, das Rad neu zu erfinden. Ich habe nichts Ähnliches in gefundenSystem.Linq odermorelinq.

Schlechtes Design? Rufen Sie einfach Hinzufügen an? Vermissen Sie das Offensichtliche?

Antworten auf die Frage(7)

Ihre Antwort auf die Frage