Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Метод Enumerable.GroupBy<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>, IEqualityComparer<TKey>)

 

Опубликовано: Октябрь 2016

Группирует элементы последовательности в соответствии с функцией селектора ключа. Ключи сравниваются с помощью компаратора, элементы каждой группы проецируются с помощью указанной функции.

Пространство имен:   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
)

Параметры

source
Type: System.Collections.Generic.IEnumerable<TSource>

IEnumerable<T> Элементы которой требуется сгруппировать.

keySelector
Type: System.Func<TSource, TKey>

Функция, извлекающая ключ для каждого элемента.

elementSelector
Type: System.Func<TSource, TElement>

Функция, сопоставляющая каждый исходный элемент с элементом в IGrouping<TKey, TElement>.

comparer
Type: System.Collections.Generic.IEqualityComparer<TKey>

IEqualityComparer<T> Для сравнения ключей.

Возвращаемое значение

Type: System.Collections.Generic.IEnumerable<IGrouping<TKey, TElement>>

IEnumerable<IGrouping<TKey, TElement>> В C# или IEnumerable(Of IGrouping(Of TKey, TElement)) в Visual Basic где каждый IGrouping<TKey, TElement> объект содержит коллекцию объектов типа TElement и ключ.

Параметры типа

TSource

Тип элементов source.

TKey

Тип ключа, возвращаемого функцией keySelector.

TElement

Тип элементов в IGrouping<TKey, TElement>.

Exception Condition
ArgumentNullException

Параметр source, keySelector или elementSelector имеет значение null.

Этот метод реализуется с использованием отложенного выполнения. Немедленно возвращаемое значение — это объект, который хранит все сведения, необходимые для выполнения действия. Запрос, представленный данным методом не выполняется до перечисления объекта путем непосредственного вызова его GetEnumerator метода или с помощью foreach в Visual C# или For Each в Visual Basic.

GroupBy<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>, IEqualityComparer<TKey>) Метод возвращает коллекцию IGrouping<TKey, TElement> по одному для каждого из различных разделов, обнаружена. IGrouping<TKey, TElement>IEnumerable<T> Также имеет ключ, связанный с его элементов.

IGrouping<TKey, TElement> Объекты располагаются в порядке на основе порядка элементов в source созданных первый ключ каждого IGrouping<TKey, TElement>. Элементы внутри группы располагаются в порядке следования элементов, в которых они были созданы в source.

Если comparer является null, компаратор по умолчанию Default используется для сравнения ключей.

Если два ключа равны в соответствии с comparer, выбран первый ключ в качестве ключа для данной группы.

В синтаксисе выражений запросов group by (Visual C#) или Group By Into (Visual Basic) преобразует предложение для вызова GroupBy. Дополнительные сведения и примеры использования см. в разделе Предложение group (Справочник по C#) и Предложение Group By (Visual Basic).

Универсальная платформа Windows
Доступно с 8
.NET Framework
Доступно с 3.5
Переносимая библиотека классов
Поддерживается в: переносимые платформы .NET
Silverlight
Доступно с 2.0
Windows Phone Silverlight
Доступно с 7.0
Windows Phone
Доступно с 8.1
Вернуться в начало
Показ: