有没有办法将通用列表转换为列表...我试过这样但是我得到了例外......请帮助
Class Demo
{
public list<string> convert()
{
List<example> eg = new List<example>();
eg.Add(new example{"Hello"});
eg.Add(new example{"World"});
List<string> str = new List<string>();
str = eg.Cast<string>().ToList(); //Returns an System.InvalidCastException.
// Is there a way to cast a generic list to string list..
return str;
}
}
Class example
{
public string name{ get; set; }
}
答案 0 :(得分:2)
你需要的是投射,而不是演员。这是因为您的example
课程无法投放到string
。在LINQ中,投影由Select
方法完成:
return eg.Select(x => x.name).ToList();
答案 1 :(得分:1)
任何List<T>
都是通用列表;你想要做的是从对象列表中提取属性,而不是执行强制转换。这可以使用LINQ来完成:
str = eg.Select(x => x.name).ToList();
答案 2 :(得分:1)
或旧的方式(.NET 2.0):
foreach (var example in eg)
{
str.Add(example.name);
}