原有list集合

List<CommodityInfo> commodityInfoList = new List<CommodityInfo>();
    public class CommodityInfo
    {
        public string StoreID {get; set;}
        public string CommodityID {get; set;}
        public string CommodityName {get; set;}
        public decimal CommodityPrice {get; set;}
}

如何按照StoreID进行分组,形成如下List

List<StoreInfo> storeInfoList = new List<StoreInfo>();
 
    public class StoreInfo
    {
        public string StoreID {get; set;}
        public List<CommodityInfo> List {get; set;}
    }

方案为:

//根据 StoreID分组
                storeInfoList = commodityInfoList.GroupBy(x =>x.StoreID)
                    .Select(group => new StoreInfo
                    {
                        StoreID= group.Key,
                        List= group.ToList()
                    }).ToList();

GroupBy  添加分组条件,多个条件时用逗号“,”隔开

  .GroupBy(x => new {x.CommodityID, x.CommodityName, x.StoreID})

Select 用于分组之后输出的结果集,可以new 出一个实体,或者直接new 个对象

 

//将AllToAddress_List分组取每组的第一条
//多条件分组 .GroupBy(x => new {x.CommodityID, x.CommodityName, x.StoreID}) var resultList = AllToAddress_List.GroupBy(x => new { x.Address, x.Owner_id}).Select(groups => new { FirstOrDefault = groups.FirstOrDefault() });

 

转自:https://blog.csdn.net/zhangxiao0122/article/details/88570472

原文地址:http://www.cnblogs.com/shiyi2014/p/16915602.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性