日期:2014-05-17  浏览次数:20963 次

【叫我猫爷_】Linq多字段分组. 求Linq高手支招..

public class Student
{
  public string Name { get; set;}
  public string Code { get; set;}
  public List<ClassMate> MateList { get; set;}
}

public class ClassMate
{
  public string Name { get; set;}
  public string Remark { get; set;}
  public string Address { get; set;}
}



现在我想要的结果呢. 就是根据ClassMate类的Name和Address分组.. 好像组合主键那样子吧.. 
这应该要怎么写.? 如果是单字段分组我会,多字段我就不知道了.. 
单字段我是这样写的..

IEnumerable<IGrouping<string, ClassMate>> query = stu.MateList.GourpBy(g => g.Name, g => g);


求Linq高手支招..

------解决方案--------------------
百度啊 有一大把资料啊
------解决方案--------------------
stu.MateList.GroupBy(x => new { x.Name, x.Address })
------解决方案--------------------
哎,难道LZ非要写成List<List<ClassMate>> cMateList;这种样子的才行?

List<List<ClassMate>> cMateList = stu.MateList.GroupBy(x => new { x.Name, x.Address }).Select(y => y.ToList()).ToList();

这下你满足了吧?

有意义么?