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

使用LINQ合并C#对象中字符串的问题求助

问题分析与解决方案

你的LINQ逻辑本身是正确的,但代码未生效大概率是因为原始数据中id或customer存在隐形差异(比如前后空格、大小写不一致),导致匿名类型分组键无法匹配。

修正后的代码

可以在分组前先对id和customer做标准化处理(去除前后空格、统一格式),确保分组键完全一致:

List<Model> data = JsonConvert.DeserializeObject<List<Model>>(json);
List<Model> result = data
    // 先清理数据中的隐形空格,避免分组失败
    .Select(x => new Model
    {
        id = x.id?.Trim() ?? string.Empty,
        customer = x.customer?.Trim() ?? string.Empty,
        sentence = x.sentence
    })
    .GroupBy(x => new { x.id, x.customer })
    .Select(g => new Model
    {
        id = g.Key.id,
        customer = g.Key.customer,
        sentence = string.Join(", ", g.Select(item => item.sentence))
    })
    .ToList();

额外场景处理

如果业务需要忽略大小写进行分组,可以修改分组键的处理逻辑:

.GroupBy(x => new 
{ 
    Id = x.id?.Trim().ToLowerInvariant() ?? string.Empty, 
    Customer = x.customer?.Trim().ToLowerInvariant() ?? string.Empty 
})

最终生成Model时,可根据需求选择保留原始大小写或统一转换格式。

若确认数据无隐形差异,可先打印原始数据的id和customer值,排查JSON反序列化是否出现类型或格式异常。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 23:40:19