ASP.NET Webサイト上のすべてのロールのリストを作成する必要があります。特定のユーザーに割り当てられたロールを使用します。ロール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