user1287678
user1287678

Reputation: 73

Add items to list from IEnumerable using LinQ

I'm adding new items to a list from a 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?

Upvotes: 2

Views: 4455

Answers (2)

Jonesopolis
Jonesopolis

Reputation: 25370

AddRange should do it for you:

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.

Upvotes: 6

Will Jenkins
Will Jenkins

Reputation: 9907

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

Upvotes: 3

Related Questions