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

Add items to list from IEnumerable using LinQ

我正在从 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
    });
}

如何使用 Linq 将 'Add' 添加到列表中?

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

AddRange 应该为您完成:

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

AddRange 采用 IEnumerable 参数并将每个项目添加到集合中。