使用逻辑or将List转换为Int

本文关键字:List 转换 Int or | 更新日期: 2023-09-27 18:08:20

在c#中,我有一个函数,它接受一个int作为参数,像这样:

searchValue = (int)(svcMembership.Request.Active | svcMembership.Request.Inactive);
userClient.DelegateAccounts_Retrieve(searchValue);

我有一个CheckBoxList,为这个列表提供选项,我已经从List<svcMembership.Request> (svcMembership.Request是一个Enum)中捕获了选定的项目。

是否有一种方法可以使用第一个示例中所示的逻辑or将List转换为整数?

使用逻辑or将List转换为Int

using System.Linq;
int searchValue = mySelectedEnumValues.Cast<int>().Aggregate(0, (a, b) => a | b);

确保svcMembership.Request的值是2的幂。

还有,看看Flags属性

您是否考虑过迭代checkbox_list.Items,添加Selected并每次迭代乘以2 ?

int checkbox_list_bits = 0;
for (int x = 0; x < checkbox_list.Items.Count; x++) {
    checkbox_list_bits *= 2;
    if (checkbox_list.Items[x].Selected) { checkbox_list_bits++; }
}
相关文章: