Коллекция производных классов, имеющих общий базовый класс
Скажем, у меня есть несколько производных классов, базовый класс которых является универсальным. Каждый производный класс наследует базовый класс с переопределением определенного типа (но все типы также являются производными от одного базового типа).
Например:
У меня есть базовый класс строки
class RowBase
{
//some properties and abstract methods
}
И у меня есть два конкретных класса строк, которые являются производными от базового класса строк
class SpecificRow1 : RowBase
{
//some extra properties and overrides
}
class SpecificRow2 : RowBase
{
//some extra properties and overrides
}
Затем у меня есть второй базовый класс, который является универсальным классом, который содержит коллекцию производных классов из RowBase
class SomeBase<T> where T : RowBase
{
ICollection<T> Collection { get; set; }
//some other properties and abstract methods
}
Тогда у меня есть два класса, которые являются производными от SomeBase, но используют разные конкретные классы строк
class SomeClass1 : SomeBase<SpecificRow1>
{
//some properties and overrides
}
class SomeClass2 : SomeBase<SpecificRow2>
{
//some properties and overrides
}
Теперь, когда в моей основной или большей области я хочу создать список / коллекцию, которая состоит из объектов SomeClass1 и SomeClass2. подобно
ICollection<???> CombinedCollection = new ...
CombinedCollection.Add(new SomeClass1())
CombinedCollection.Add(new SomeClass2())
.
.
.
//add more objects and do something about the collection
.
.
.
Вопрос: возможно ли иметь такую коллекцию? Если это возможно, как я могу этого достичь? Если нет, что может быть альтернативным способом?