>>418
Selectなくても大丈夫だったか
hogeのGetEnumeratorが呼ばれる度にindexが増えていくのが気になるけど

戻り値はIEnumerableでもIGroupingどっちでもいいけどkeyは隠すかも
もし必要になったら以下のメソッドを作って、foreachと速度比較してって採用するかどうかって感じかな
色々と参考になった

public static IEnumerable<IEnumerable<string> Split<T>(IEnumerable<T> source, Func<T, bool> predicate){
var index = 0;
return source.GroupBy(x => predicate(x) ? ++index : index);
}