如何将字符串列表转换为C#中的类列表?

时间:2012-08-19 14:37:18

标签: c# string list

我有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 参数中。

那怎么办? 是否有任何转换方法可以做到这一点?它是如何工作的?

提前致谢;)

5 个答案:

答案 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)

你必须手动创建一个函数,否则程序很难理解哪个属性应该与列表中的字符串相对应。