10分でコーディングから。ネタ元、のネタ元の問題文の解読しづらさは異常。}}あれ、スッキリどころか意外と汚い......。んー、最初はGroupByのところがToLookupでそのままreturnしてすっきり終了。「求められるのはIGroupingじゃなくて文字列」なのでLookupじゃなくGroupByにして後段のSelectで結果を文字列化。「余ったカードは配られず捨てられる」ので更に後段のSelectで廃棄処分。「カードが足りなかった場合は人数分の空文字列配列を返す」のでreturnを別に分けてRepeatでそれを生成。後付けでごにゃごにゃ足していった結果、汚くなってしまった、残念。Stringの部分ですね。中身がcharじゃなくて文字列の時はstring.Joinを使いますが、どちらもToArrayがウザくなってイヤー。IEnumerableにToStringは文字列で連結して欲しい。Stringとあんま変わらないし、セパレータも付けたいとなるといよいよ面倒くさい。いうわけで拡張メソッドの出番。}}残念ながら拡張メソッドは元からあるメソッド名を上書きできないのでToStringではなくToJoinedString。セパレータを使いたい場合にAggregateでサクッと書けなくて昔悩んだのですが、カウント用の変数を場外に用意すればいいんだ!と気付いたのでサクッと書けるようになりました。Linqだけで1行で済ませたい場合はSelectでindex作ってやればいいですねー。実行効率的にもアレゲ。Aggregateで何でも出来るといっても、この辺は標準搭載して欲しいものですねー、Sumがあるなら文字列連結があってくれてもいいじゃない、みたいな。(06/3002:22)問題文が解答から逆算して作ったような感じで、自由度なかったですねー。それでもこうして大勢の人が解いたのは、タイトルのつけかたが上手い煽りなのかしらん。(04/1115:16)今更ですが。副作用を求めてSelectを使うと気持ち悪い、Select使うと新しいObjectが出来るのが気持ち悪い。諸々が重なって自分で書いたコードが気持ち悪いことになり、ググってたら見つけました。_.ToString()).ToArray());}2.indexの代わりに、sb.Lengthを見れば最初かどうかは分かる気がします。