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

时间:2015-01-19 17:34:56

标签: c# linq ienumerable

我将新项目添加到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
    });
}

我如何做&#39;添加&#39;与Linq一起上榜?

2 个答案:

答案 0 :(得分:5)

AddRange应该为你做到:

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

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

答案 1 :(得分:3)

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