我目前正在編寫一個winforms c#應用程序,它將允許用戶清理文本/日誌文件。目前該應用程序正在運行,但如果該文件的大小爲massibe,即10MB,則需要一個時間!清理文本文件/日誌文件WinForms C#
它所做的第一個清理是針對用戶Windows身份驗證,即當時登錄的用戶。我有一個組織中所有用戶的文本文件,大約有10,000個。
我這個加載到一個
List<string> loggedUsers = new List<string>();
string[] userList = System.IO.File.ReadAllLines(@"C:\temp\logcleaner\users.txt");
foreach (string line in userList)
{
loggedUsers .Add(line.ToString());
}
接下來,我需要一個文本文件,並顯示在一個RichTextBox(rtbOrgFile),允許用戶看的見,目前有什麼樣的信息。然後用戶點擊一個按鈕,執行以下操作:
foreach (var item in loggedUsers)
{
if (rtbOrgFile.Text.Contains(item.ToString()))
{
if(foundUsers.Items.Contains(item.ToString()))
{
// already in list
}
else
{
foundUsers.Items.Add(item.ToString());
}
}
}
我的問題是,這是最有效的方法嗎?或者有很多方法可以解決這個問題。代碼工作正常,但是當你開始進入大文件時,它非常慢。
去哪?請退出代碼並解釋您正在嘗試做什麼,然後我們可以查看代碼以確定這是否合適,現在我甚至都不知道您要在此處做什麼。 「淨化」是什麼意思?什麼是「loggedUsers」?那麼「找到用戶」呢? –
對不起'清理' - 刪除任何/清理文件。 loggedUsers是我們組織內所有用戶的列表。 'FoundUsers'是一個列表框,如果在文本文件中找到'LoggedUser',則被填充,即,如果在文本文件中找到JBLOGGS,則它將包含JBLOGGS,它將被添加到foundUsers。該代碼然後爲在loggedUsers中列出的所有用戶循環。一個按鈕隨後會出現在'Clean'中,它將在系統輸出的文件中用DATAREMOVED替換任何找到的用戶。 – user1700974