Мне нужно создать список всех ролей на веб-сайте ASP.NET с теми, которые назначены данному пользователю помечены, то есть Roles API позволяет мне получать все роли и роли для пользователя , Я хочу объединить их, чтобы показать сетку ролей для пользователя, показывая все роли, с галочкой на тех, которые назначены пользователю. Как я могу улучшить следующие усилия LINQ to Objects?Запрос роли пользователя с LINQ
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;
}
Ах, я верю, что это мифическое левое соединение в LINQ, спасибо! – ProfK 2010-11-28 20:57:09