最適化する次のコードがあります。ファイルが大きいと予想されるため、行を格納するためにHashMapを使用せず、代わりに文字列配列を選択しました。nが約500,000のロジックをテストしてみたところ、約14分間実行されました。私は間違いなくそれよりもはるかに速くしたいと思います、そしてどんな助けや提案にも感謝します。
public static void RemoveDuplicateEntriesinFile(string filepath)
{
if (filepath == null)
throw new ArgumentException("Please provide a valid FilePath");
String[] lines = File.ReadAllLines(filepath);
for (int i = 0; i < lines.Length; i++)
{
for (int j = (i + 1); j < lines.Length; j++)
{
if ((lines[i] !=null) && (lines[j]!=null) && lines[i].Equals(lines[j]))
{//replace duplicates with null
lines[j] = null;
}
}
}
File.WriteAllLines(filepath, lines);
}
前もって感謝します!