0

次のコードは、ユーザーのロールの配列を返します。

var userRoles = Roles.GetRolesForUser();

可能な役割は次のとおりです。

public enum RoleType
{
    Default = 10,
    Guest = 20,
    User = 30,
    Admin = 40,
    Super = 50
}

userRoles配列を介してコードをチェックし、検出できる最高のRoleTypeを返すにはどうすればよいですか?

4

1 に答える 1

2
var highestRole = userRoles.Max();

あなたが望むことをします。

using System.Linq;(これを機能させるには、ファイルの先頭に追加する必要があります)

アップデート1: オンライン作業サンプル:http://ideone.com/U1hXK

アップデート2:

上記の例では、が値userRolesの配列であると想定していRoleTypeます。

userRolesが役割タイプを表すsの配列である場合string、最初にこれらの値を解析する必要があります。コードは次のようになります。

var highestRole = userRoles
    .Select(r => Enum.Parse(typeof(RoleType), r))
    .Max();

オンライン作業サンプル: http: //ideone.com/JHHva

于 2012-10-14T08:59:07.680 に答える