エクスポート (0) 印刷
すべて展開
この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文

Enumerable.GroupBy<TSource, TKey, TElement> メソッド (IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>, IEqualityComparer<TKey>)

キー セレクター関数に従ってシーケンスの要素をグループ化します。 キーの比較には、比較子を使用し、各グループの要素の射影には、指定された関数を使用します。

名前空間:  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 および Visual C# では、このメソッドを、IEnumerable<TSource> 型のオブジェクトのインスタンス メソッドとして呼び出すことができます。インスタンス メソッド構文を使用してこのメソッドを呼び出す場合は、最初のパラメーターを省略します。詳細については、「拡張メソッド (Visual Basic)」または「拡張メソッド (C# プログラミング ガイド)」を参照してください。

例外条件
ArgumentNullException

sourcekeySelector、または elementSelectornull です。

このメソッドは遅延実行を使用して実装されます。 アクションの実行に必要なすべての情報を格納するオブジェクトがすぐに返されます。 このメソッドによって表されるクエリは、オブジェクトの GetEnumerator メソッドを直接呼び出すか、foreach (Visual C# の場合) または For Each (Visual Basic の場合) を使用することによってオブジェクトが列挙されるまで実行されません。

GroupBy<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>, IEqualityComparer<TKey>) メソッドは、検出された各一意のキーに対して 1 つずつ存在する IGrouping<TKey, TElement> オブジェクトのコレクションを返します。 IGrouping<TKey, TElement> は、その要素に関連付けられたキーも持つ IEnumerable<T> です。

IGrouping<TKey, TElement> オブジェクトは、各 IGrouping<TKey, TElement> の最初のキーを生成した source 内の要素の順序に基づいた順序で返されます。 グループ内の要素は、その要素を生成した要素が source に出現する順序で返されます。

comparernull の場合は、既定の等値比較子 Default を使用してキーを比較します。

comparer に従って 2 つのキーが等しいと見なされた場合は、最初のキーがそのグループのキーとして選択されます。

クエリ式の構文では、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 Client Profile

サポート対象 : 4、3.5 SP1

汎用性のあるクラス ライブラリ

サポート対象 : 汎用性のあるクラス ライブラリ

Windows ストア アプリ用 .NET

サポート対象 : Windows 8

Windows Phone アプリ用 .NET

サポート対象 : 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 SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

コミュニティの追加

追加
表示:
© 2014 Microsoft