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

如何使用LINQ按人员分组采购List并展示采购信息?

使用LINQ按人员分组采购记录

你可以通过LINQ的GroupBy方法实现按人员分组,结合Select将分组结果转换成符合展示需求的结构,具体实现如下:

基础分组实现(按person_id分组)

// 按person_id分组,并转换为包含人员信息和采购列表的结构
var groupedPurchases = l.GroupBy(item => item.person_id)
                        .Select(group => new 
                        {
                            person_id = group.Key,
                            person_name = group.First().person_name, // 同组内人员名称一致,取第一个即可
                            purchases = group.Select(item => new { item.shirt, item.cost }).ToList()
                        });

严谨分组实现(同时按person_id和person_name分组)

如果需要避免因异常数据(比如同一person_id对应不同person_name)导致的错误,可以同时将person_id和person_name作为分组键:

var groupedPurchases = l.GroupBy(item => new { item.person_id, item.person_name })
                        .Select(group => new 
                        {
                            person_id = group.Key.person_id,
                            person_name = group.Key.person_name,
                            purchases = group.Select(item => new { item.shirt, item.cost }).ToList()
                        });

循环展示分组结果

得到分组后的集合后,即可按照你期望的逻辑循环展示:

foreach (var person in groupedPurchases)
{
    Display(person.person_id);
    Display(person.person_name);
    
    foreach (var purchase in person.purchases)
    {
        Display(purchase.shirt);
        Display(purchase.cost);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 02:12:13