这是定义:
public static IEnumerable<TResult> OfType<TResult>(this IEnumerable source);
如何用以下内容替换TResult:
Type.GetType("MyClass from assembly");
答案 0 :(得分:4)
你做不到。通用参数在编译时强制执行类型安全性,而Type.GetType
使用反射,并且在编译时不知道。你究竟想要实现什么目标?
答案 1 :(得分:3)
如果您不知道所涉及的类型,则无法在编译时执行此操作,但您可以为IEnumerable编写自己的扩展方法:
public static IEnumerable OfType(this IEnumerable source, Type t)
{
foreach(object o in source)
{
if(t.IsAssignableFrom(o.GetType()))
yield return o;
}
}