c#将List <object>转换为List <?>

Edu*_*sio 0 c# c#-4.0

目前我有一个类型的对象,IList<object>我需要转换为另一种类型的IList使用Type对象.

例如.

Type t = typeof(MyType);
var list = OtherClass.MyFunction(myParam param);
Run Code Online (Sandbox Code Playgroud)

变种名单是类型的IList<object>,我需要它是类型IList<t>

目前我有一个静态函数并调用反射,但这是在循环中调用的,需要最小化在循环中花费的最长时间.

任何人都知道任何其他方式来执行此转换而不使用反射?

有代表可能吗?

its*_*e86 5

你可以使用Enumerable.Cast<T>():

var myList = list.Cast<MyType>().ToList();
Run Code Online (Sandbox Code Playgroud)

  • @spender我没有看到它在编译时不知道类型的任何地方. (3认同)
  • @spender我不认为OP曾经说T在编译时不知道. (3认同)
  • 他在哪里说的?这个答案没有错 (2认同)