使用 LINQ 对对象列表进行分组

2024-03-02

我有一个对象:

public class Customer
{
    public int ID { get; set; }
    public string Name { get; set; }
    public int GroupID { get; set; }
}

我返回一个可能如下所示的列表:

List<Customer> CustomerList = new List<Customer>();
CustomerList.Add( new Customer { ID = 1, Name = "One", GroupID = 1 } );
CustomerList.Add( new Customer { ID = 2, Name = "Two", GroupID = 1 } );
CustomerList.Add( new Customer { ID = 3, Name = "Three", GroupID = 2 } );
CustomerList.Add( new Customer { ID = 4, Name = "Four", GroupID = 1 } );
CustomerList.Add( new Customer { ID = 5, Name = "Five", GroupID = 3 } );
CustomerList.Add( new Customer { ID = 6, Name = "Six", GroupID = 3 } );

我想返回一个 linq 查询,它看起来像

CustomerList
  GroupID =1
    UserID = 1, UserName = "UserOne", GroupID = 1
    UserID = 2, UserName = "UserTwo", GroupID = 1
    UserID = 4, UserName = "UserFour", GroupID = 1
  GroupID =2
    UserID = 3, UserName = "UserThree", GroupID = 2
  GroupID =3
    UserID = 5, UserName = "UserFive", GroupID = 3
    UserID = 6, UserName = "UserSix",

我尝试从

使用 Linq 将对象列表分组为新的对象列表分组列表 https://stackoverflow.com/questions/2697253/using-linq-to-group-a-list-of-objects-into-a-new-grouped-list-of-list-of-objects

code

var groupedCustomerList = CustomerList
  .GroupBy(u => u.GroupID)
  .Select(grp => grp.ToList())
  .ToList();

有效,但没有给出所需的输出。


var groupedCustomerList = CustomerList.GroupBy(u => u.GroupID)
                                      .Select(grp =>new { GroupID =grp.Key, CustomerList = grp.ToList()})
                                      .ToList();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 LINQ 对对象列表进行分组 的相关文章

随机推荐

  • 如何组合验证属性错误消息的资源字符串?

    如果我在验证属性上收到错误消息 例如 名字为必填项 姓氏为必填项 然后是这样的验证属性 Required ErrorMessageResourceName Error FirstNameRequired ErrorMessageResour
  • 在 swt 中归档的多行文本上使用 Tab 键吗?

    如何防止多行文本字段 窃取 Tab 键按下 我的意思是 我想使用 TAB 在窗口的元素之间循环 但是当我输入多行文本时 TAB 变成 普通 键 并且只需将制表符插入到我正在键入的文本中 我该如何处理这个问题 我应该编写一些自定义侦听器 还是
  • 过滤最接近给定日期时间的日期时间

    我有一个具有日期时间字段的模型 现在给定一个特定的日期时间 DT 我需要获取日期时间最接近 DT 的对象 这可能吗 Thanks 您可以通过两个查询和一些逻辑来获取它 这个想法是找到紧随目标日期时间之后的一个对象和紧邻目标日期时间之前的一个
  • 训练神经网络技巧

    对于对象识别 我建议使用 MATLAB 中的神经网络 我有 30 个对象 每个对象有 20 个图像 因此我有 600 个输入数据和 20 个不同的类 输入矩阵为 100x600 目标矩阵为 1x600 输入矩阵列是 100 个 bin 中关
  • WSO2 IS 使用 Radius / Kerberos 登录

    下图显示了我需要部署的架构 它解释了我的问题 我已经设计了一个子系统 其中包含部署在apache tomcat中的一组应用程序 Web服务 Web应用程序 为了向我的子系统提供 SSO 功能 我使用带有 SAML2 0 的 WSO2 身份服
  • 使用 CodeIgniter 进行用户身份验证

    我正在使用 PHP 编写一个 Web 应用程序 我想为此使用 MVC 模式 并决定使用代码点火器 http codeigniter com 我的应用程序将有一些页面需要身份验证 而有些页面则不需要 我想以一种非常通用的方式设计它 这样就不会
  • Asp.Net 中动态添加的控件

    我正在尝试了解 asp net 我有一个长期的 php 开发人员背景 但我现在面临着学习 asp net 的任务 并且我在这方面遇到了一些麻烦 这很可能是因为我试图迫使框架去做一些它不适合的事情 所以我想学习如何 以正确的方式 做到这一点
  • 如何在 h:selectOneMenu 中的值更改时执行转换?

    通常我会做如下的事情 单击按钮执行转换
  • 全局名称“re”未定义

    我是 python 新手 正在研究 mincemeat 的地图减少问题 运行 mincemeat 脚本时出现以下错误 python mincemeat py p changeme localhost error uncaptured pyt
  • Javascript 和 Howler.js - 如何选择随机声音?

    我对 javascript 相当陌生 并尝试在 mousemove 上播放随机选择的声音 我无法上班 希望得到帮助 我使用 howler min js 来控制声音 因此不会等到声音播放结束才播放下一个声音 这是代码 var soundObj
  • 在 Swift 中生成字符串的自定义长度哈希值

    是否有可能以某种方式将长度为 n 的给定字符串 哈希 为任意长度 m 的哈希值 我想实现如下目标 let s1
  • 在Python中输入一个文本文件并写入多个输出文件

    大家好 我正在输入 filename txt 并生成多个输出文件 filename1 txt filename2 txt 和 filename3 txt 更具体地说 这是 filename txt 中的输入数据 Time ms Channe
  • rvm 无法再在 Mac OS X Mountain Lion 上安装 1.8.7-p352

    我将 rvm 升级到 1 15 8 然后在 zsh 出现一些问题后又降回 1 15 7 降级后 我的 Ruby 1 9 版本恢复正常 但 1 8 7 无法再次安装 出现两个错误 Error running patch F 25 p1 N f
  • Fabric JS 通过 ID 以编程方式选择对象

    在 Fabric JS 中 我需要通过给定的对象名称 ID Circle 来选择对象 var onCircle function canvas add new fabric Circle id Circle radius 30 fill f
  • 使用分数的模算术

    我陷入了这个使用整数和分数模 10 相乘的密码学问题 这是等式 7 4 11 mod 10 我知道我应该将其转换为整数 因为 mod 运算符不适用于分数 但我无法弄清楚这一点 明显地 7 4 11 28 11 但我无法得到分数的 mod 1
  • JQuery.validate - 仅关于模糊的一条规则;其余的应该正常吧?

    我已经用小提琴来展示我试图为我的用户 ID 字段执行的简单验证 使其成为必需 尽可能积极地验证 设置最小长度 尽可能积极地验证 设置最大长度 尽可能积极地验证 运行 AJAX 调用以确保用户 ID 不存在 我只想在模糊时运行它 我没有使用
  • GDB 中断命令不会在命令文件中执行

    我有一个调试脚本 它执行以下操作 设置两个断点 让我们称呼他们吧start and end断点 启动后 脚本将继续执行 直到start命中断点 once start命中断点 我执行单步执行 直到end命中断点 这是我的命令文件 end br
  • vue.js 中的过滤器和方法有什么区别?

    我想将时间戳转换为北京时间 我应该使用过滤器还是方法来实现此功能 有什么区别 比如性能上的区别 仅当基础时间戳更改时 显示的北京时间才需要更改 方法因此应该not be used https v2 vuejs org v2 guide co
  • 如何仅显示绘图中特定曲线子集的图例?

    t 0 0 01 2 pi s sin t c cos t m sin t hold on plot t s r plot t c b plot t m g hold off legend cosine 我的绘图中有几条曲线 我只想显示其中
  • 使用 LINQ 对对象列表进行分组

    我有一个对象 public class Customer public int ID get set public string Name get set public int GroupID get set 我返回一个可能如下所示的列表