反射:将对象的数组转换为列表

时间:2012-09-14 04:33:16

标签: .net reflection .net-3.5

代码:

object arrayOfObjs = new object[]{ 1, "test"};

现在我想向此数组添加新元素。有可能像:

((IEnumerable)arrayOfObjs).Cast<object>().ToList().Add("test123");

此代码不会添加项目。

修改:

如果我们强力打字:

object arrayOfObjs = new string[]{ "1", "test"};

添加工作,thx:

var tmp = ((IEnumerable)arrayOfObjs).Cast<object>().ToList();
tmp.Add("test123");

如果在设计时类型未知,我们如何将此列表转换回T数组?

1 个答案:

答案 0 :(得分:3)

您需要在局部变量中捕获结果:

var items = ((IEnumerable)arrayOfObjs).Cast<object>().ToList();

items.Add("test123");