如何将IQueryable <object> / IEnumerable <object>转换为给定的Type

时间:2018-03-14 06:04:53

标签: c# generics reflection

我有一个集合(IQueryable<object>/IEnumerable<object>)和一个给定的Type,我在运行时通过反射获得。在以下情况下如何将IQueryable<object>投射到特定Type

  1. Type是一个类,例如Person(我希望将IQueryable<object>转换为IQueryable<Person>
  2. Type是一个通用集合,例如IQueryable<Person>
  3. 请注意,Type是我通过aVariable.GetType()获得的变量。我事先不知道类型,因此我不能使用Cast<type>也不能使用(类型)。

1 个答案:

答案 0 :(得分:1)

如果已知目标类型,请使用此

yourIEnumerable.Select(x => (YourType) x);

但正如您所指出的,您不知道目标类型的类型,并且您是使用object.GetType()获取的,因此我建议您关注this链接