使用LINQ to组对象的列表 [英] Using LINQ to group a list of objects

查看:207
本文介绍了使用LINQ to组对象的列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个对象:

 公共类客户
{
公众诠释ID {搞定;组; }
公共字符串名称{;组; }
公众诠释组ID {搞定;组; }
}



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

 列表<客户> CustomerList =新的List<客户>(); 
CustomerList.Add(新客户{ID = 1,名称=一,组ID = 1});
CustomerList.Add(新客户{ID = 2,名称=二,组ID = 1});
CustomerList.Add(新客户{ID = 3,名称=三公,组ID = 2});
CustomerList.Add(新客户{ID = 4,名称=四,组ID = 1});
CustomerList.Add(新客户{n = 5,名称=五个一,组ID = 3});
CustomerList.Add(新客户{ID = 6,名称=六个一,组ID = 3});



我要回LINQ查询它看起来像

  CustomerList 
组ID = 1
用户ID = 1,用户名=UserOne,组ID = 1
用户ID = 2,用户名= UserTwo,组ID = 1
用户ID = 4,用户名=UserFour,组ID = 1
组ID = 2
用户ID = 3,用户名=UserThree,组ID = 2
组ID = 3
用户id = 5,用户名=UserFive,组ID = 3
用户ID = 6,用户名=UserSix,

我从



试图

使用LINQ到组的对象的列表成列表的新分组的列表对象



代码

  VAR groupedCustomerList = CustomerList 
.GroupBy(U => u.GroupID)
。选择(GRP => grp.ToList())
.ToList();



的作品,但是没有得到所需的输出。


解决方案

  VAR groupedCustomerList = CustomerList.GroupBy(U => u.GroupID)
。选择(GRP =>新建{组ID = grp.Key,CustomerList = grp.ToList()})
.ToList();


I have an object:

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

I return a list that may look like the following:

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 } );

I want to return a linq query which will look like

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",

I tried from

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();

works but does not give the desired output.

解决方案

var groupedCustomerList = CustomerList.GroupBy(u => u.GroupID)
                                      .Select(grp =>new { GroupID =grp.Key, CustomerList = grp.ToList()})
                                      .ToList();

这篇关于使用LINQ to组对象的列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆