2013-03-12 43 views
2

我已經看過類似的問題,但沒有什麼比較合適的。我有一個恰好包含List的對象。我想把它變成我可以列舉的東西。將對象轉換爲列表<object>

例如:

object listObject;   // contains a List<Something> 
List<object> list; 

list = listObject as List<object>; // list contains null after 

foreach (object o in list) 
{ 
    // do stuff 
} 

從對象轉換到列表<對象>就是問題所在。

編輯:

我完成了:

object listObject;   // contains a List<Something> 
List<object> list; 

IEnumerable enumerable = listObject as IEnumerable; 

if (enumerable != null) 
{ 
    list = enumerable.Cast<object>().ToList(); 

    foreach (object o in list) 
    { 
     // do stuff 
    } 
} 

回答

6

試試這個:

list = (listObject as IEnumerable).Cast<object>().ToList() 
+0

完美。謝謝! – BillP3rd 2013-03-12 03:38:38

+0

@ BillP3rd不要忘記接受答案。 – Corey 2013-03-12 03:41:49

+0

如果'listObject'不能轉換爲'IEnumerable',則表達式'(listObject as IEnumerable).Cast ()'將拋出'NullReferenceException'。如果'listObject'非空並且不實現'IEnumerable',表達式'((IEnumerable)listObject).Cast ()'提供了一個稍微更多的信息異常。 – 2013-03-12 03:48:40