我有string
这样的列表:
public List<string> Subs { get; set; }
我有这个班级list<Category> Cat { get; set; }
:
public class Category
{
public int ID { get; set; }
public string Name { get; set; }
public int SubCat_ID { get; set; }
}
我只需要将list<string> Subs
中的所有值都放入List<Category> Cat
。当然,list<string>
中的每个字符串都应放在List<Category>
的每个 Name 参数中。
那怎么办? 是否有任何转换方法可以做到这一点?它是如何工作的?
提前致谢;)
答案 0 :(得分:3)
是的,您可以使用LINQ:
来完成var cats = (from sub in Subs
select new Category
{
Name = sub
}).ToList();
答案 1 :(得分:2)
您可以使用ConvertAll
类的List
方法:
Cat = Subs.ConvertAll(s => new Category { Name = s });
答案 2 :(得分:2)
如果两个列表都存在,则应使用Zip:
var result = categories.Zip(subs, (cate, sub) =>
{
cate.Name = sub;
return cate;
});
答案 3 :(得分:1)
使用“选择”可枚举的扩展方法:
http://msdn.microsoft.com/en-us/library/bb548891.aspx
后跟“ToList()”,如下所示:
var newList = Subs.Select(name => new Category { Name = name}).ToList();
答案 4 :(得分:0)
你必须手动创建一个函数,否则程序很难理解哪个属性应该与列表中的字符串相对应。