0

次のLinqステートメントがあります:

var permissions = (from ru in RoleUserStore
                  join role in RoleStore on ru.RoleId equals role.Id
                  where ru.UserId == user.Id
                  select role.Permissions).ToList(); 

私の結果はList<ICollection<Permission>>. すべての役割にわたってフラットなリストを作成するには、これを正しく行うにはどうすればよいですか? これを行う方法がわかりませんでした。

4

3 に答える 3

0

SelectManyを使用できます

var result = (from ru in RoleUserStore
              join role in RoleStore on ru.RoleId equals role.Id
              where ru.UserId == user.Id
              select role.Permissions)
              .SelectMany(user => user).ToList();

これが SelectMany の機能であり、MSDN を引用します。

Projects each element of a sequence to an IEnumerable(Of T) and flattens the resulting sequences into one sequence.

于 2013-10-16T10:56:29.877 に答える