我有用户类列表,但现在我必须将其作为对象列表返回,我尝试转换它,但它给了我错误。无法隐式转换。
答案 0 :(得分: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 :(得分:1)
以下链接可以帮助您。
列表sl = new List(); 列出ol; ol =(List)sl;
In C#, why can't a List<string> object be stored in a List<object> variable
答案 2 :(得分: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);
我不确定我是否理解你的问题,但这是我的两分钱。
答案 3 :(得分:0)
= / with linq?
var object_list = from o in user_list
select new {
User: o.User,
Guid: o.Guid
// insert properties here
}
??????