Question: Is there a better (more performant or nicer code ;) way to find all derived Types of a Type?
Currently im using something like:

1. get all types in used Assemblies
2. check my type with all those types if it is 'IsAssignable'

I was wondering if theres a better way todo this?

Answer: 
I'm pretty sure the method you suggested is going to be the easier way to find all derived types. Parent classes don't store any information about what their sub-classes are (it would be quite silly if they did), which means there's no avoiding a search through all the types here.

Only recommendation is to use the `Type.IsSubclassOf` method instead of `Type.IsAssignable` in order to check whether a particular type is derived from another. Still, perhaps there is a reason you need to use `Type.IsAssignable` (it works with interfaces, for example).
I ended up using the code that the top answer gave. Only thing is I wanted the code to be more readable so I wrote basically the same thing but like this instead:

```
var derived_types = new List<Type>();
foreach (var domain_assembly in AppDomain.CurrentDomain.GetAssemblies())
{
  var assembly_types = domain_assembly.GetTypes()
    .Where(type => type.IsSubclassOf(typeof(MyType)) && !type.IsAbstract);

  derived_types.AddRange(assembly_types);
}

```

In my case I used `type.IsSubClassOf(MyType)` because I only wanted derived types excluding the base class like mentioned above. I also needed the derived types not to be abstract (`!type.IsAbstract`) so I am also excluding derived abstract classes.