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

C# Linq嵌套分组问题:对整数列表执行二次分组

两次分组的实现方案

给定整数列表:

List<int> x = new List<int>() { 
  1, 2, 3, 4, 5, 6, 7, 8, 9, 10 
};

需要先按奇偶分组,再对每个分组内的元素按item >= 5二次分组,预期输出:[[1,3],[5,7,9]] , [[2,4], [6,8,10]]

你现有的代码完成了第一次分组,只需要修改Select部分,对每个奇偶分组再做一次分组即可:

var result = x
    .GroupBy(num => num % 2) // 第一次分组:按奇偶(1=奇数,0=偶数)
    .Select(oddEvenGroup => 
        oddEvenGroup.GroupBy(item => item >= 5) // 二次分组:按是否>=5
                    .Select(subGroup => subGroup.ToList())
                    .ToList())
    .ToList();

代码说明

  • 第一层GroupBy(num => num % 2):把原列表拆成奇数(键为1)和偶数(键为0)两个大分组
  • 对每个大分组oddEvenGroup,执行第二层GroupBy(item => item >= 5):将组内元素再拆分为>=5和<5两个子分组
  • 最后把每个子分组转成List,再把所有子组的集合转成List,最终得到符合预期的嵌套列表结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:51:56