C#Linq中的GroupBy应用

本文探讨了C# Linq中的GroupBy方法,解释了其返回值类型IEnumerable<IGrouping<TKey, TSource>>的含义。通过示例展示了如何使用GroupBy对集合按level1Name, level2Name, level3Name进行三层分组,揭示了GroupBy在实际操作中如何层层嵌套以实现复杂的数据组织。最后给出了具体的分组操作代码。" 6526157,1072450,VS2005 C++ 内存泄漏检测方法,"['C++', '开发工具', '内存管理', '内存泄漏检测', 'Visual Studio']
摘要由CSDN通过智能技术生成

之前在编程的时候一直都有用到Linq的GroupBy方法来给集合分组,但是一直不太清楚这个方法到底返回值是什么样的,今天找个时间来总结一下。

先看下官方给的释义:

        // 摘要:
        //     根据指定的键选择器函数对序列的元素进行分组。
        //
        // 返回结果:
        //     IEnumerable<IGrouping<TKey, TSource>> 在 C# 或 IEnumerable(Of IGrouping(Of TKey,
        //     TSource)) 中 Visual Basic 其中每个 System.Linq.IGrouping`2 对象包含一系列对象和一个密钥。
        public static IEnumerable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector);

主要看下它的返回值: IEnumerable<IGrouping<TKey, TSource>>

其中,IEnumerable<T>是可枚举的所有非泛型集合的基接口,比如我们经常用的List<T>等;

IGrouping<TKey, TSource> 官方给的定义是:表示具有公共键的对象的集合。点进去看下接口内部

    //
    // 摘要:
    //     表示具有公共键的对象的集合。
    //
    // 类型参数:
    //   TKey:
    //     键的类型 System.Linq.IGrouping`2。
    //
    //   TElement:
    //     中的值的类型 System.Linq.IGrouping`2。
    public interface IGrouping<out TKey, out TElement> : IEnumerable<TElement>, IEnumerable
    {
        //
        // 摘要:
        //     获取的键 System.Linq.IGrouping`2。
        //
        // 返回结果:
        //     键 System.Linq.IGrouping`2。
        TKey Key { get; }
    }

 只有一个Key字段。再结合定义,可以知道返回值就是一个个集合,并且提供一个字段来表示公共键。

        接下来通过代码验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值