2012-09-14 63 views
0

代码:反思:铸造对象数组到列表

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的数组,如果类型在设计时未知?

回答

3

你需要捕捉的结果在一个局部变量:

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

items.Add("test123"); 
+0

没错。这是工作,thx。我的问题的一个小版本。 –

+0

Thx。找到解决方案var arr = Array.CreateInstance(tag.GetType()。GetElementType(),tt.Count); Array.Copy(tt.ToArray(),arr,tt.Count); –