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

如何对JArray按group_pid分组并获取dataPool最大值?解决CS0021错误

解决JArray按group_pid分组并取dataPool最大值的问题

错误原因

你遇到的CS0021错误,是因为GroupBy返回的每个x是IGrouping类型的分组集合,不是单个JObject,所以不能直接用x["dataPool"]索引取值。

正确实现代码

JArray result = new JArray(
    jaProjects.GroupBy(item => (long)item["group_pid"])
              .Select(group => new JObject(
                  new JProperty("group_pid", group.Key),
                  new JProperty("dataPool", group.Max(item => (long)item["dataPool"]))
              ))
);

代码说明

  • GroupBy(item => (long)item["group_pid"]):将原JArray中的对象按group_pid的数值分组,每个分组的Key就是对应的group_pid值
  • group.Max(item => (long)item["dataPool"]):遍历当前分组内的所有JObject,提取dataPool值并取最大值
  • 最后将每个分组的Key(group_pid)和对应最大值包装为新的JObject,再统一存入新的JArray中,得到你期望的结果

验证结果

执行后会生成如下JArray:

[
    {
      "group_pid": 1,
      "dataPool": 25000
    },
    {
      "group_pid": 0,
      "dataPool": 18750
    }
 ]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 11:43:10