• 締切済み

C#でエクセルみたいな重複行削除

よくエクセルファイルである「重複行を削除」という 処理を行いたいのですが、検討もつきません。 想像ではStreamReaderを使用して、ファイルを読み出して 処理を行う、というのはわかってるのですが、 単一ファイル内の重複行を探し出して削除する、という処理が浮かびません・・・。 最初、ReadToEnd()で一気に読み出し、 新たにStreamReaderを作成して、ReadLine()で一行ずつ取り出して マッチしたらremoveする、と考えていたのですが、 そもそも一気に取り出したものにマッチするわけがなく、削除はできませんでした・・・。 何か良案がありましたら、教えてくださるとうれしいです。 どなたかご教授いただけると幸いです。

みんなの回答

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.2
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

入力バッファを一行分用意して、 ファイルから読み出した一行が、入力バッファと違っていたら、入力バッファに代入するとともに出力ファイルに出力します。 入力バッファと同じだったら単に読み捨てます。 入力ファイルが読み終わったら、 入力ファイルを削除して、 出力ファイルを入力ファイル名に名前を変更します。