在下面我想使用 GetUsersRole 但对显示的部分有困难。我想将 Roles 值与 usersRole 进行比较,如果 Role==usersRole,则 UserRole = true,否则为 false。
基本上我想要这样的结果:
用户1:真实
用户2:假
用户3:假
用户4:正确
取决于用户角色
班级角色
public enum Role
{
User1 = 1,
User2= 2,
User3= 3,
User4= 4
}
我正在上课
private class UserRoleModel
{
public string Role { get; set; }
public bool UserRole { get; set; }
}
和一个方法
public Role[] UserRoles { get; set; }
private static UserRoleModel[] GetUsersRole(Role[]usersRole)
{
List<UserRoleModel> rolesList = new List<UserRoleModel>();
string[] Roles;
Roles = new string[] { Role.user1.ToString(), Role.User2.ToString(),
Role.user3.ToString(), Role.user4.ToString() };
foreach (var item in Roles)
{
rolesList.Add(new UserRoleModel
{
Role = item,
*UserRole = usersRole.Contains(item)* ////difficulty here
});
}
return rolesList.ToArray();
}
你遇到这个问题是因为你正在转动Role
当您实际上不需要字符串时,将值转换为字符串。移动ToString()
到你真正需要它的地方:
public Role[] UserRoles { get; set; }
private static UserRoleModel[] GetUsersRole(Role[]usersRole)
{
List<UserRoleModel> rolesList = new List<UserRoleModel>();
Role[] roles = (Role[]) Enum.GetValues(typeof(Role));
// or if you need the specific three values like in your example:
// Role[] roles = new Role[] { Role.User1, Role.User2, Role.User3, Role.User4 };
foreach (var role in roles)
{
rolesList.Add(new UserRoleModel
{
Role = role.ToString(),
UserRole = usersRole.Contains(role)
});
}
return rolesList.ToArray();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)