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

LINQ分组字符串并计算总长度:如何求和及格式化结果?

解决LINQ分组求和并格式化输出的问题

问题分析

你当前的LINQ查询仅提取了每组的首字母和单个字符串的长度,没有对组内长度求和,也未按要求格式拼接结果,所以输出不符合预期。

修改后的LINQ代码

var result = stringList
    .GroupBy(word => word[0]) // 按首字母分组
    .Select(group => $"{group.Sum(word => word.Length)}-{group.Key}") // 计算组内总长度并格式化目标字符串
    .OrderByDescending(s => s.Last()) // 按首字母降序排序,匹配示例输出顺序
    .ToArray();

代码说明

  • GroupBy(word => word[0]):将字符串按首字母分组,得到以首字母为键、对应字符串集合为值的分组集合。
  • Select(...):对每个分组,用Sum方法计算组内所有字符串的长度总和,再通过字符串插值拼接成"S-C"的格式。
  • OrderByDescending(s => s.Last()):按结果字符串的最后一个字符(即原首字母)降序排序,保证示例中Y组在前、G组在后的顺序。
  • ToArray():将最终结果转换为字符串数组,符合预期的输出类型。

测试验证

输入:

var stringList = new[] { "YELLOW", "GREEN", "YIELD" };

输出结果:

new[] { "11-Y", "5-G" }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 10:20:31