我有一個日誌文件,每行有單個字符串。我試圖從文件中刪除重複的數據並將文件保存爲新文件。我首先想到了將數據讀入HashSet,然後將哈希集的內容保存出來,但是當嘗試執行此操作時(在將該字符串添加到哈希集的行上),我得到一個「OutOfMemory」異常。從大文件中刪除冗餘數據
文件中有大約32,000,000行。每次比較重新讀取整個文件是不現實的。
任何想法?我的另一個想法是將整個內容輸出到一個SQLite數據庫並選擇DISTINCT值,但我不確定它能與那麼多值一起工作。
感謝您的任何意見!
您可以用'File.ReadAllLines'沒有一個OutOfMemoryException?我假設你在32位系統上運行它。 –
我在64位系統上運行它,並且我還沒有嘗試過ReadAllLines。我確實想知道有多少項目被淘汰,所以我正在使用一個StreamReader讀取每一行並將其添加到哈希集。我正在測試.Add()方法的結果以查看它是否返回false來計算冗餘項目的數量。如果可能,我想保留此功能。 – rune711