LINQ基础—GroupBy子句

LINQ基础—GroupBy子句

一、简介

group子句返回一个IGrouping(T Key,T element)对象序列,编译时,group子句被转换成对GroupBy方法的调用。

二、案例

案例一:

根据首字母分组,并打印到控制台

//数据源
string[] fruits = { "apple", "banana", "peach", "orange", "melon", "lemon" };

//分组查询的查询语句
var query = from f in fruits
            group f by f[0];

//执行查询
foreach (var letters in query)
{
    Console.WriteLine("words that start with letter:" + letters.Key);
    foreach (var word in letters)
    {
        Console.WriteLine(word);
    }
}

分析:

首先遍历字符串数组中的每个字符串,然后根据每个字符串的首字母进行分组,返回结果

案例二:

var query = from f in fruits
             group f by f[0] into g
             where g.Key == 'p' || g.Key == 'b'
             select g;

分析:

如果您想要对每个组执行附加查询操作,则可以使用into上下文关键字指定一个临时标识符。使用into时,必须继续编写该查询,并最终用一个select语句或另一个group子句结束该查询。

三、多字段分组示例

GroupBy(x => new { x.a , x.b, x.c }).Select( x=> ( new Class名 { a=x.Key.a , b=x.Key.b , c = x.Key.c } ))
上一篇:pandas.DataFrame的groupby()方法的基本使用


下一篇:08 学生课程分数的Spark SQL分析