导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

Enumerable.GroupBy<TSource, TKey, TElement> 方法 (IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>, IEqualityComparer<TKey>)

2013/12/13

根据键选择器函数对序列中的元素进行分组。 通过使用比较器对键进行比较,并且通过使用指定的函数对每个组的元素进行投影。

Namespace:  System.Linq
程序集:  System.Core(位于 System.Core.dll 中)

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

类型参数

TSource

source 中的元素的类型。

TKey

keySelector 返回的键的类型。

TElement

IGrouping<TKey, TElement> 中的元素的类型。

参数

source
类型: System.Collections.Generic.IEnumerable<TSource>
要对其元素进行分组的 IEnumerable<T>
keySelector
类型: System.Func<TSource, TKey>
用于提取每个元素的键的函数。
elementSelector
类型: System.Func<TSource, TElement>
用于将每个源元素映射到 IGrouping<TKey, TElement> 中的元素的函数。
comparer
类型: System.Collections.Generic.IEqualityComparer<TKey>
一个用于对键进行比较的 IEqualityComparer<T>

返回值

类型: System.Collections.Generic.IEnumerable<IGrouping<TKey, TElement>>
在 C# 中为 IEnumerable<IGrouping<TKey, TElement>>,或者在 Visual Basic 中为 IEnumerable(Of IGrouping(Of TKey, TElement)),其中每个 IGrouping<TKey, TElement> 对象都包含一个类型为 TElement 的对象集合和一个键。

用法说明

在 Visual Basic 和 C# 中,您可以对类型为 IEnumerable<TSource> 的任何对象调用此方法作为实例方法。使用实例方法语法来调用此方法时,忽略第一个参数。

异常条件
ArgumentNullException

sourcekeySelectorelementSelectornull

此方法通过使用延迟执行实现。 即时返回值为一个对象,该对象存储执行操作所需的所有信息。 只有通过直接调用对象的 GetEnumerator 方法或使用 Visual C# 中的 foreach(或 Visual Basic 中的 For Each)来枚举该对象时,才执行此方法表示的查询。

GroupBy<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>, IEqualityComparer<TKey>) 方法返回 IGrouping<TKey, TElement> 对象的一个集合,其中每个对象对应于所遇到的每个非重复键。 IGrouping<TKey, TElement> 为一个 IEnumerable<T>,它也有一个与其元素关联的键。

根据 source(生成每个 IGrouping<TKey, TElement> 的第一个键)中的元素顺序生成对应顺序的 IGrouping<TKey, TElement> 对象。 将以元素生成时显示在 source 中的顺序生成分组中的元素。

如果 comparernull,则使用默认的相等比较器 Default 对键进行比较。

如果根据 comparer 认为有两个键相等,则选择第一个键作为该分组的键。

在查询表达式语法中,group by (Visual C#) 或 Group By Into (Visual Basic) 子句转换为 Enumerable.GroupBy 的调用。

Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示:
© 2015 Microsoft