ToList()
полностью избыточен, хотя это вряд ли вызовет какое-либо замедление:
var type = typeof(TInterface);
var types = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(s => s.GetTypes())
.Where(t => type.IsAssignableFrom(t));
К вашему сведению, приведенный выше код должен быть относительно быстрым, его только в точкекогда вы пытаетесь с помощью types
перечислить, что .Net Framework делает тяжелую работу.
Кроме того, оптимизировать нечего, не зная больше о том, что вы пытаетесь сделать - вышеприведенное получает перечислениевсех типов t
во всех сборках, загруженных в текущий домен, где typeof(TInterface).IsAssignableFrom(t)
- если загружено много типов / сборок, то, боюсь, это займет некоторое время.
Можетвы расскажете нам больше о том, что вы пытаетесь сделать?