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
日本
アメリカ
ロシア
イギリス
ブラジル
フランス