ASP.NET MVC Core中如何合并字符串列表的重复键对应值
合并重复键对应的多值为逗号分隔项
可以通过LINQ的分组功能实现需求,具体步骤和代码如下:
- 将每个字符串拆分为键和值
- 按键分组,归集同一键下的所有值
- 将每组的值用逗号拼接,再与键组合成新的字符串
代码实现
// 原始字符串列表 List<string> stringList = surveylist.Split('&').ToList(); // 处理重复键,合并对应值 var mergedList = stringList .Select(item => { var parts = item.Split('='); // 简单校验格式,避免无效项引发异常 return parts.Length == 2 ? new { Key = parts[0], Value = parts[1] } : new { Key = item, Value = string.Empty }; }) .GroupBy(x => x.Key) .Select(g => $"{g.Key}={string.Join(",", g.Select(x => x.Value))}") .ToList();
代码说明
- 拆分键值:用
Split('=')拆分每个项,同时做格式校验,兼容可能的无效输入 - 分组归集:
GroupBy(x => x.Key)把相同键的项归为一组 - 合并值:
string.Join(",", g.Select(x => x.Value))将同一组的所有值用逗号连接,再与键组合成最终字符串
执行后,mergedList会生成你期望的结果:
7=55 6=33 5=MCC 4=GHI 3=ABC 1003=DEF,ABC 1=JKL
内容的提问来源于stack exchange,提问作者Zahid Lateef
相关产品推荐
相关产品推荐

