2010-05-08 64 views
0

我有用戶類的列表,但現在我必須把它作爲返回對象的名單,我嘗試將其轉換,但它給了我錯誤等。不能隱式轉換。如何轉換列表<user>列出<object>

+2

爲什麼你需要將列表轉換爲對象列表? – msarchet 2010-05-08 06:03:12

+0

@msarchet:可能會滿足第三方庫API要求。不幸的是,這發生在我身上。 – Randolpho 2010-05-08 06:11:13

+0

因爲我的函數返回類型,如果列表 girish 2010-05-08 06:13:35

回答

0

= /與LINQ?

var object_list = from o in user_list 
        select new { 
         User: o.User, 
         Guid: o.Guid 
         // insert properties here 
        } 

??????

+1

這將返回一個IEnumerable cjk 2010-05-08 07:20:13

7

.NET 3.5中最簡單的解決辦法是:

List<object> objects = users.Cast<object>().ToList(); 

注意這將創建列表的副本。您無法查看一個List<User>作爲List<object> - 否則你能夠做到:

objects.Add(new SomeOtherType()); 

這顯然打破東西。

在C#4,你可以使用IEnumerable<T>協方差,使其稍微簡單:

List<object> objects = new List<object>(users); 

List<object> objects = users.ToList<object>(); 
1
public List<Object> ConvertToObjectList<N>(List<N> sourceList) 
{ 
    List<Object> result = new List<Object>(); 

    foreach(N item in sourceList) 
    { 
     result.Add(item as Object); 
    } 

    return result; 
} 

... 

List<Object> myList = ConvertToObjectList<myClass>(myOldList); 

我不知道如果我理解正確你的問題,但這是我的兩分錢。

相關問題