GroupBy

オーバーロード

GroupByメソッドには次の8種類のオーバーロードがあります。

  1. Keyセレクタ
  2. Keyセレクタ+Comparer
  3. Keyセレクタ+Elementセレクタ
  4. Keyセレクタ+Elementセレクタ+Comparer
  5. Keyセレクタ+Resultセレクタ
  6. Keyセレクタ+Resultセレクタ+Comparer
  7. Keyセレクタ+Elementセレクタ+Resultセレクタ
  8. Keyセレクタ+Elementセレクタ+Resultセレクタ+Comparer

数が多いので難しそうですが、注意深く分類して整理すると理解しやすくなります。

引数による分類

まず、引数に注目してみます。Comparerの有無を1つと考えると4パターンしかないことが分かります。

  1. Keyセレクタ
  2. Keyセレクタ+Elementセレクタ
  3. Keyセレクタ+Resultセレクタ
  4. Keyセレクタ+Elementセレクタ+Resultセレクタ

返値による分類

次に、返値に注目してみます。

すると、返値の型は次の3パターンあることがわかります。

  1. IEnumerable<IGrouping<TKey, TSource>>
  2. IEnumerable<IGrouping<TKey, TElement>>
  3. IEnumerable<TResult>

引数による分類と、返値の対応は以下のようになります。

  1. Keyセレクタ:返値①
  2. Keyセレクタ+Elementセレクタ:返値②
  3. Keyセレクタ+Resultセレクタ:返値③
  4. Keyセレクタ+Elementセレクタ+Resultセレクタ:返値④

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です