且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

比较数组时填充列表困难

更新时间:2023-02-05 14:20:27

您正在遇到此问题因为您实际上不需要字符串时将 Role 值转换为字符串。将 ToString()移至实际需要的位置:

You are running into this problem because you are turning the Role values into strings when you don’t actually need a string. Move the ToString() to where you actually need it:

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();
}