2012-09-14 102 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); –