You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过按位与操作从列表生成逗号分隔的目标值字符串

基于位运算实现选中值的文本拼接

核心实现代码

假设已获取到包含ID、Type、Value的数据源列表_data,且ID均为2的幂,根据保存的总和值(如5)生成目标字符串的代码如下:

int savedVal = 5;
// 筛选出被选中的条目
var selectedItems = _data.Where(item => (savedVal & item.ID) > 0);
// 拼接成逗号分隔的Value字符串
string result = string.Join(", ", selectedItems.Select(item => item.Value));
// 输出结果:Test1, Test3

逻辑说明

  • 位运算筛选:由于每个ID是2的幂,二进制仅一位为1,通过savedVal & item.ID操作,若结果大于0,说明该ID对应的选项被选中(该位在总和值中处于激活状态)。
  • 字符串拼接:使用string.Join直接将筛选出的Value字段按指定格式拼接,若没有选中项会返回空字符串,无需额外处理分隔符问题。

结合数据库查询的完整示例

如果需要从数据库查询数据后直接处理,可整合为:

int savedVal = 5;
var clubData = await _context.clubs.Where(x => x.Type == "NewTown").ToListAsync();
string selectedValues = string.Join(", ", 
    clubData.Where(item => (savedVal & item.ID) > 0).Select(item => item.Value)
);

内容的提问来源于stack exchange,提问作者IntelligentCancer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:10:32