简体   繁体   English

使用LinQ从IEnumerable添加项目到列表

[英]Add items to list from IEnumerable using LinQ

I'm adding new items to a list from a IEnumerable (query.Roles). 我正在从IEnumerable (query.Roles)添加新项目到列表。

var query = GetRoles();
var vm = new CreateUserViewModel();
vm.Role = new List<CreateUserViewModel.Item>();

foreach (var Role in query.Roles)
{
    vm.Role.Add(new CreateUserViewModel.Item
    {
        Label = Role.Label,
        RoleNumber = Role.RoleNumer
    });
}

How i can do the 'Add' to the list with Linq? 如何使用Linq将“添加”列表添加到列表中?

AddRange should do it for you: AddRange应该为你做:

vm.Role.AddRange(query.Roles.Select(r => new CreateUserViewModel.Item
            {
                Label = r.Label,
                RoleNumber = r.RoleNumer
            }));

AddRange takes an IEnumerable parameter and adds each item to the collection. AddRange采用IEnumerable参数并将每个项目添加到集合中。

vm.Role = query
          .Roles
          .Select(r=>new CreatUserViewModel
              .Item{Label = r.Label,
                    RoleNumber = r.RoleNumber})
          .ToList();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM