首页 > 其他 > 详细

Linq嵌套分组实例

时间:2014-04-13 03:53:40      阅读:502      评论:0      收藏:0      [点我收藏+]

新建控制台应用程序GroupByExp,准备示例数据。

public class ExampleModel
{
    public int C1 { get; set; }//列1
    public string C2 { get; set; }//列2
}
List<ExampleModel> listExampleModel = new List<ExampleModel>();
listExampleModel.Add(new ExampleModel() { C1 = 1, C2 = "b"});
listExampleModel.Add(new ExampleModel() { C1 = 1, C2 = "a"});
listExampleModel.Add(new ExampleModel() { C1 = 2, C2 = "a"});
listExampleModel.Add(new ExampleModel() { C1 = 2, C2 = "a"});
listExampleModel.Add(new ExampleModel() { C1 = 3, C2 = "c"});
listExampleModel.Add(new ExampleModel() { C1 = 4, C2 = "a"});

嵌套分组实现

通过Linq实现嵌套分组,分组包含两步:

(1)按照C1进行分组(得到下图左半部效果)

(2)再按照C2进行分组(得到下图右半部效果)

bubuko.com,布布扣 

下面给出嵌套分组及结果输出的代码。

var exampleModelGroup = listExampleModel.GroupBy(it => it.C1).GroupBy(it => it.First().C2);
List<ExampleModel> listResult = new List<ExampleModel>();
foreach (var group1 in exampleModelGroup)
{
     foreach (var group2 in group1)
     {
          listResult.AddRange(group2.ToList());
     }
}
foreach(var exampleModel in listResult)
{
     Console.WriteLine("{ C1 = " + exampleModel.C1 + ", C2 = " + exampleModel.C2 + " }");
}

执行结果如下图所示。

bubuko.com,布布扣

 

分析说明

分组及结果输出的详细过程如下图所示。

bubuko.com,布布扣

嵌套分组操作中,我们要想获取最终分组中的成员信息的话,可以按照本文所述方法完成,本质上就是遍历。

 

Linq嵌套分组实例,布布扣,bubuko.com

Linq嵌套分组实例

原文:http://blog.csdn.net/yl2isoft/article/details/23514649

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!