Мне нужно создать список всех ролей на веб-сайте ASP.NET, помечая роли, назначенные данному пользователю, т. Е. API ролей позволяет мне получать все роли и роли для пользователя. Я хочу объединить их, чтобы иметь возможность отображать сетку ролей для пользователя, показывая все роли с галочкой на тех, которые назначены пользователю. Как я могу улучшить следующие усилия LINQ to Objects?
public IEnumerable<UserRoleIndicator> GetRoleIndicators(string userName)
{
// GetRolesForUser and GetAllRoles bith return string[].
var rolesForUser = _roleProvider.GetRolesForUser(userName)
.Select(r => new UserRoleIndicator { RoleName = r, InRole = true });
var rolesNotForUser = _roleProvider.GetAllRoles()
.Where(r => !rolesForUser.Contains(new UserRoleIndicator { RoleName = r, InRole = true }))
.Select(r => new UserRoleIndicator { RoleName = r, InRole = false });
var rolesList = rolesForUser.Union(rolesNotForUser);
return rolesList;
}