0

我有六个类型的变量String,它们包含从 DB 字段位检索到的 0/1 值。

所以,这些变量是单选框的值,Y=1 | N=0。

现在,我有一个变量,它接受一个或多个枚举值,它们由管道“|”分隔。

if (bool.Parse(mht_ReadAccess) && bool.Parse(mht_WriteAccess))
{
  var grantAccessRequest = new GrantAccessRequest
  {
    PrincipalAccess = new PrincipalAccess
    {
      AccessMask = AccessRights.WriteAccess | AccessRights.ReadAccess,
      Principal = userreference
    },
    Target = recordentityreference
  };
}

现在,这是解决此问题的静态方法。如果我有 6 个变量,如 "mht_WriteAccess" ,我如何检查其中有多少设置为 true,并自动更改 "AccessMask" 变量的情况,并使用管道传递所有正确的枚举值。

我想知道是否有办法自动执行此操作,也许有任何循环?

4

1 回答 1

0
AccessRights rights = 0;

if (bool.Parse(mht_ReadAccess))
    rights |= AccessRights.ReadAccess;

if (bool.Parse(mht_WriteAccess))
    rights |= AccessRights.WriteAccess;

// do the same for all other variables

var grantAccessRequest = new GrantAccessRequest
{
    PrincipalAccess = new PrincipalAccess
    {
        AccessMask = rights,
        Principal = userreference
    },
    Target = recordentityreference
};
于 2012-11-07T16:45:21.140 回答