У меня есть иерархия классов, подобная следующей (на самом деле у меня более трех производных типов):
class A {};
class B : A {};
class C : B {};
class D : A {};
Экземпляры этих классов хранятся в коллекциях List
. Иногда коллекции бывают довольно большими (тысячи или даже десятки тысяч объектов).
В моем коде мне часто приходится выполнять некоторые действия в зависимости от точного типа объектов. Примерно так:
List<A> collection = ...
foreach (A obj in collection)
{
if (obj is C)
something(obj as C);
else if (obj is B)
somethingElse(obj as B);
....
}
Как видите, код выполняет множество проверок типа объекта и приведения типов. Для коллекций с большим количеством элементов производительность кода не так велика.
Что вы порекомендуете для ускорения проверки типов во время выполнения в моем случае?