C# 合并同一列表内reference相同元素且无重复的实现方法
实现思路
核心逻辑是通过哈希映射(字典)做中间聚合,两步即可完成:
- 遍历原列表,以
reference值为键,累加拼接对应description值 - 将聚合完成的哈希映射转换为最终的无重复对象列表
该逻辑不依赖特定编程语言,所有支持哈希映射的语言都可以按这个流程实现。
Python 实现示例
假设你的原始列表格式如下:
original_list = [ {"reference": "123", "description": "this should"}, {"reference": "124", "description": "sth"}, {"reference": "125", "description": "sth"}, {"reference": "123", "description": "be one"} ]
实现代码:
# 临时字典存储聚合结果 temp_dict = {} for item in original_list: ref = item["reference"] desc = item["description"] if ref in temp_dict: # 拼接时加空格分隔,和示例效果一致 temp_dict[ref] += f" {desc}" else: temp_dict[ref] = desc # 转换为最终列表 result_list = [{"reference": k, "description": v} for k, v in temp_dict.items()]
JavaScript 实现示例
原始列表格式:
const originalList = [ {reference: "123", description: "this should"}, {reference: "124", description: "sth"}, {reference: "125", description: "sth"}, {reference: "123", description: "be one"} ]
实现代码:
const tempMap = new Map() originalList.forEach(item => { const ref = item.reference const desc = item.description if (tempMap.has(ref)) { tempMap.set(ref, `${tempMap.get(ref)} ${desc}`) } else { tempMap.set(ref, desc) } }) // 转换为最终列表 const resultList = Array.from(tempMap.entries()).map(([ref, desc]) => ({ reference: ref, description: desc }))
内容的提问来源于stack exchange,提问作者TonyPeanutbutter
相关产品推荐
相关产品推荐

