>>291
あ、よくみたらそりゃ遅くなって当たり前じゃん!!

「(buf = sr.ReadLine()) 」が遅くなる原因じゃね?
C#のstringは内容書き換えるたびに再生成されるから、
何度も書き換えてるうちにどんどん遅くなるよ。

bufだけでもStringBuilderに汁!
読み込むテキストも加工して書き換えるならstring[]はやめるべき。