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

use*_*678 2 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
    });
}
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*lis 5

AddRange应该为你做:

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

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