下面给出了我的用户类
public class User
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string UserName { get; set; }
public Roles Role { get; set; }
public List<Role> Roles { get; set; }
}
My Role类如下
public class Role
{
public int Id { get; set; }
public string RoleName { get; set; }
}
我的enum在
下面给出public enum Roles
{
Admin,
Guest,
Accountant
}
使用下面给出的代码比较字符串和枚举值时出现错误(无法将字符串与enum进行比较)
if(User.Roles.Where(m => _roles.Contains(m.RoleName)).ToList()))
{
}
=>*这里m.RoleName获取错误(无法将字符串与enum进行比较)
您可能需要以下两种变体之一:
User.Roles.Where(m => _roles.Any(r => r.ToString().Contains(m.RoleName)))
或:
User.Roles.Where(m => _roles.Contains((Roles)Enum.Parse(typeof(Roles), m.RoleName)))
你也可以这样比较:
if (User.Roles.Any(r=> Enum.GetNames(typeof(Roles)).Contains(r.RoleName)))
{
Console.WriteLine("Successed");
}
else
{
Console.WriteLine("UnAuthrize");
}