2013-12-08 42 views
1

我有一個大問題,我有一個函數。這個函數有1個參數的對象類型,所以我可以接收一個簡單的對象或一個未知類型的列表。如何將列表<未知類型>設置爲列表<object>

萬一我的對象參數是一個列表,我需要將他的值設置爲List<object>。我不知道該怎麼做。

例如:

var m_list = new List<String>(){"a","b","c"}; 
MyFunction(m_list); 

功能

private void MyFunction(Object parameter){ 
    List<Object> myObjectsList= new List<Object>;//I need set the values of parameter to this object 
} 
+1

真正的問題是,爲什麼會傳遞一個列表到的方法作爲'object'只是對象轉換爲'列表'?至少將參數更改爲「IList」;你可能會逃避'IEnumerable' – Moho

+0

你爲什麼要使用「對象」的任何理由?以某種方式擊敗泛型的目的。 –

回答

2

它投射到非通用IEnumerable接口(或ICollectionIList):

var sequence = (IEnumerable)parameter; 

然後可以循環在沒有泛型的情況下直接覆蓋項目,或者使用LINQ將它們複製到一個List<object>

myObjectsList =m_list.Cast<object>().ToList() 
+0

非常感謝你,你的解決方案非常好! –

相關問題