Nick Kahn
Nick Kahn

Reputation: 20078

Specified cast is not valid. enum

whats wrong with this code, i try also Enum.Parse but didnt work.

public enum RoleNames  
{
    Administrator,
    [Description("Personnel Security")]
    PrsonalSecurity,
}

foreach (RoleNames roleName in arRoles) //<<<error
{
        if (IsCurrentUserInRole(roleName)) { return true; }
}

arRoles is ArrayList of RoleNames, which is passing as a parameters.

Upvotes: 0

Views: 1186

Answers (1)

Kelsey
Kelsey

Reputation: 47726

Can you post the rest of your code as the following example would work just fine:

public enum RoleNames   
{ 
    Administrator, 
    [Description("Personnel Security")] 
    PersonalSecurity
} 

RoleNames[] testEnumArray =
    { RoleNames.Administrator, RoleNames.PersonalSecurity };
foreach (RoleNames en in testEnumArray)
{
    // do something
}

Based on your error message, arRoles must not be an array of RoleNames since the cast is failing.

If you want to iterate over your enum definition you can use the following code:

foreach (RoleNames type in Enum.GetValues(typeof(RoleNames)) 
{   
    // do something
} 

Post your exact code.

Upvotes: 1

Related Questions