LINQ:GroupBy

public static IEnumerable<IGrouping<TKey,TElement>> GroupBy<TSource,TKey,TElement> (
this IEnumerable source,
Func<TSource,TKey> keySelector,
Func<TSource,TElement> elementSelector);

类型参数

TSource
source 的元素类型。
TKey
keySelector 返回的键的类型。
TElement
IGrouping<TKey,TElement> 中元素的类型。

参数

source IEnumerable
要对其元素进行分组的 IEnumerable
keySelector Func<TSource,TKey>
用于提取每个元素的键的函数。
elementSelector Func<TSource,TElement>
用于将每个源元素映射到 IGrouping<TKey,TElement> 中的元素的函数。

分组

 /* IEnumerable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>(
 * this IEnumerable<TSource> source, 
 * Func<TSource, TKey> keySelector);
 */
// 使用 Age 作为键值对宠物进行分组
// 并且值为每个值选择宠物的Name
 IEnumerable<IGrouping<int, string>> query =
        pets.GroupBy(pet => pet.Age, pet => pet.Name);

查询表达式

IEnumerable<IGrouping<int, string>> query =
    from pet in pets
    group pet.Name by pet.Age;

匿名类型分组

 IEnumerable<IGrouping<int, string>> query =
        pets.GroupBy(pet => new { pet.Age }, pet => new { pet.Name} );

查询表达式

IEnumerable<IGrouping<int, string>> query =
    from pet in pets
    group new { pet.Name} by new { pet.Age };

参考

对查询结果进行分组
Enumerable.GroupBy 方法

posted @ 2022-05-19 23:08  【唐】三三  阅读(103)  评论(0编辑  收藏  举报