Rather than trying to use LINQ for no reason (if you think it is going to perform better think again, LINQ is often slower), you'd be better improving your understanding of the basics.
List<Type> selectedList = new List<Type>();
foreach (Type type in allTypes)
{
if (type != null && type.BaseType != null && type.BaseType.Name == "MyBASETYPE")
{
inheritedList.Add(type);
}
}
As mentioned in the other solution depending on your version of .net you can also use "?."