Вы не можете сделать это во время компиляции, если вы не знаете, какой тип используется, но вы можете написать собственный метод расширения для IEnumerable:
public static IEnumerable OfType(this IEnumerable source, Type t)
{
foreach(object o in source)
{
if(t.IsAssignableFrom(o.GetType()))
yield return o;
}
}