使用逻辑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转换为整数?
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++; }
}