0

我有大量的课程。从这个列表中我得到一个指定的类型

Type aType = Type.GetType(...);

现在我想在 linq 语句中使用这种类型,例如:

var aResult = from obj in scope.Extent<aType>() select obj;

这似乎是不可能的,因为 Extent 不接受 Type。

现在有什么办法(使用.net 4.5)来调用该语句吗?

我想做的就是说使用类型作为类。不要调用该类,仅使用 linq 从范围中获取此类型的所有对象。

4

1 回答 1

2

您不能将 的实例Type用作泛型类型参数 - 无论如何不能在编译时使用。

如果您想要特定类型的对象,您可以这样做

var aResult = from obj in scope where obj.GetType() == aType select obj;

请注意,这需要精确的类型匹配,而不是任何类型的“可以分配给”关系。

另请注意,这只会为您提供一系列objects - 再次没有编译时方法将事物转换为Type.

于 2012-10-25T12:18:41.563 回答