C# 如何铸造IQueryable<;对象>/IEnumerable<;对象>;特定类型
我有一个集合(C# 如何铸造IQueryable<;对象>/IEnumerable<;对象>;特定类型,c#,generics,reflection,C#,Generics,Reflection,我有一个集合(IQueryable/IEnumerable)和一个给定的类型,我在运行时通过反射得到它。在以下情况下,如何将IQueryable强制转换为特定的类型: Type是一个类,例如Person(我想将IQueryable转换为IQueryable) Type是一个通用集合,例如IQueryable 注意,Type是通过aVariable.GetType()获得的变量。我事先不知道类型,因此我不能使用Castnor(type) 如果已知目标类型,请执行此操作 yourIEnumerabl
IQueryable/IEnumerable
)和一个给定的类型,我在运行时通过反射得到它。在以下情况下,如何将IQueryable
强制转换为特定的类型
:
Type
是一个类,例如Person
(我想将IQueryable
转换为IQueryable
)
Type
是一个通用集合,例如IQueryable
注意,Type是通过aVariable.GetType()获得的变量。我事先不知道类型,因此我不能使用Cast
nor(type) 如果已知目标类型,请执行此操作
yourIEnumerable.Select(x => (YourType) x);
但是正如您所注意到的,您不知道目标类型的类型,而是使用object.GetType()获得它
因此我建议遵循link他们发明泛型就是为了这个原因。你不使用泛型函数吗?看看Midas,让我们假设你已经使用反射将IEnumerable
转换为IEnumerable
。你将如何使用它?只有在运行时才知道类型的集合有什么意义?