0

我有一个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>应该放在 的每个Name 参数中List<Category>

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

提前致谢 ;)

4

5 回答 5

3

是的,你可以用 LINQ 做到这一点:

var cats = (from sub in Subs
            select new Category
            {
                Name = sub
            }).ToList();
于 2012-08-19T14:41:20.457 回答
2

您可以使用该类的ConvertAll方法List

Cat = Subs.ConvertAll(s => new Category { Name = s });
于 2012-08-19T14:44:31.423 回答
2

如果两个列表都存在,则应使用 Zip:

 var result = categories.Zip(subs, (cate, sub) =>
            {
                cate.Name = sub;
                return cate;
            });
于 2012-08-19T14:54:12.153 回答
1

使用“选择”可枚举扩展方法:

http://msdn.microsoft.com/en-us/library/bb548891.aspx

然后是这样的“ToList()”:

var newList = Subs.Select(name => new Category { Name = name}).ToList();
于 2012-08-19T14:44:03.313 回答
0

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

于 2012-08-19T14:41:33.987 回答