Excelでは重複行の削除といったような機能が使えます。

これをC#のコンソールアプリケーションでやってみました。このプログラムと同じフォルダに重複行を削除したいtxtファイル置きそのファイル名をstring型のfileで指定するとresult.txtに結果が出力されます。

 
[csharp]
using System;
using System.Linq;
using System.Text;
using System.IO;

namespace De_duplication
{
class Program
{
static void Main(string[] args)
{

//読み取った値を入れるための配列(行数の分だけ用意してください)
string[] ary1 = new string[200000] ;

//読み取るファイル名指定
string file = @"sample.txt";

if (File.Exists(file)) //ファイルの存在チェック
{
int i = 0;
Encoding sjis = Encoding.GetEncoding("Shift_JIS");
StreamReader reader = new StreamReader(file, sjis);

//配列に読み取った値を入れる
while (reader.EndOfStream == false)
{
ary1[i] = reader.ReadLine();
i++;
}
reader.Close();

//一意の要素を抜き出し配列に変換する(配列中の重複する値を削る)
string[] result = ary1.Distinct().ToArray();

//result.txtに結果を出力
StreamWriter writer = new StreamWriter(@"result.txt", true, sjis);
foreach (string output in result)
{
writer.WriteLine(output);
}
writer.Close();

}
else
{
Console.WriteLine("ファイルがないよ");
}

}
}
}
[/csharp]

 

実行例

sample.txt

日本
アメリカ
ロシア
イギリス
日本
イギリス
日本
ブラジル
ロシア
フランス

result.txt

日本
アメリカ
ロシア
イギリス
ブラジル
フランス

スポンサーリンク