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?