AddRange do kolekcji

Współpracownik zapytał mnie dzisiaj, jak dodać zakres do kolekcji. Ma klasę, która dziedziczy zCollection<T>. Istnieje właściwość typu tylko do pobrania, która zawiera już pewne elementy. Chce dodać przedmioty z innej kolekcji do kolekcji nieruchomości. Jak może to zrobić w sposób przyjazny dla C # 3?(Zwróć uwagę na ograniczenie dotyczące właściwości get-only, które zapobiega rozwiązywaniu takich problemów jak Union i ponowne przypisywanie).

Jasne, foreach z własnością. Dodaj będzie działać. AleList<T>- styl AddRange byłby znacznie bardziej elegancki.

Łatwo jest napisać metodę rozszerzenia:

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

Ale mam wrażenie, że zmieniam koło. Nie znalazłem niczego podobnego wSystem.Linq lubmorelinq.

Zły projekt? Wystarczy zadzwonić? Brakuje rzeczy oczywistych?

questionAnswers(7)

yourAnswerToTheQuestion