Экспорт (0) Печать
Развернуть все
Данная статья переведена автоматически. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. Дополнительные сведения.
Перевод
Текст оригинала

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

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

Пространство имен:  System.Linq
Сборка:  System.Core (в System.Core.dll)

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

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

TSource

Тип элементов последовательности source.

TKey

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

Параметры

source
Тип: System.Collections.Generic.IEnumerable<TSource>
Объект IEnumerable<T>, элементы которого следует сгруппировать.
keySelector
Тип: System.Func<TSource, TKey>
Функция, извлекающая ключ для каждого элемента.
comparer
Тип: System.Collections.Generic.IEqualityComparer<TKey>
Компаратор IEqualityComparer<T>, используемый для сравнения ключей.

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

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

Примечание об использовании

В Visual Basic и C# этот метод можно вызывать как метод экземпляра для любого объекта типа IEnumerable<TSource>. При вызове метода для экземпляра следует опускать первый параметр. Дополнительные сведения см. в разделе Методы расширения (Visual Basic) или Методы расширения (Руководство по программированию в C#).

ИсключениеУсловие
ArgumentNullException

Значение параметра source или keySelectornull.

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

Метод GroupBy<TSource, TKey>(IEnumerable<TSource>, Func<TSource, TKey>, 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).

.NET Framework

Поддерживается в версиях: 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework (клиентский профиль)

Поддерживается в версиях: 4, 3.5 с пакетом обновления 1 (SP1)

Переносимая библиотека классов

Поддерживается в версии: Переносимая библиотека классов

Приложения .NET для Магазина Windows

Поддерживается в версии: Windows 8

Приложения .NET для Windows Phone

Поддерживается в версиях: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista с пакетом обновления 2 (SP2), Windows Server 2008 (роль основных серверных компонентов не поддерживается), Windows Server 2008 R2 (роль основных серверных компонентов поддерживается в пакете обновления 1 (SP1) или выше; системы на базе Itanium не поддерживаются)

.NET Framework поддерживает не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.

Добавления сообщества

ДОБАВИТЬ
Показ:
© 2014 Microsoft