そもそもAggregateとはなんぞや ある集合(IEnumerable<TSource>)に対して処理を通して1つの結果(TSource または TAccumulate)を受け取る集合系メソッドです。 要するに T[] があった時に T 一つひとつに何らかの処理を通して集計した結果を返す的なイメージでOK。 Haskellでいうfoldみたいな。 で、これを使う時3つほどオーバーロードがあるんですが、それぞれの挙動がちょっとだけ気になったので調べてみた。 オーバーロードについて public static TSource Aggregate<TSource>( this IEnumerable<TSource> source, Func<TSource, TSource, TSource> func) { return /* hogemoge */ } public static TAc

