我有一個字符串列表,我必須通過多次運行來嘗試減少重複。比較和組合一個類似的字符串列表
List <string> EventsList = BuildList.Distinct().ToList();
這消除確切副本,但偶爾會有一個包含確切的同一事件的不同變化的重複事件消息。
例如:
錯誤代碼[123]:失敗在[X]目錄中。
錯誤代碼[123]:在[Y]目錄中失敗。
這樣做的目的是,我可以再比較這些字符串,並拿出輸出:
錯誤代碼[123]:如果不按[X,Y]目錄。
由於不同的輸入總是在括號中,我創建了
string pattern = @"\[([^\]]+)";
RegexOptions options = RegexOptions.IgnoreCase | RegexOptions.Compiled;
Regex ConsolidatorRegex = new Regex(pattern, options);
BuildList = EventsList;
foreach (string singleEvent in BuildList)
{
ConsolidatorRegex.Replace(singleEvent, "");
}
以爲我能然後比較字符串,並再次刪除重複。
但現在我卡住了。我想盡可能地保留按時間順序排列的事件的原始順序,但我無法想出最佳的解決方法。再次運行BuildList.Distinct().ToList();
並不能幫助我捕捉(常爲多)去除較量,所以我可以將它們添加回。
我以爲我可以運行一個循環,做了String.Equals
方法,並把全部命中到字典中則比較字典到EventsList
,但我無法獲得循環的索引以創建字典密鑰。
有沒有更好的方法去解決這個問題我錯過了?
大約有多少種不同的錯誤代碼? –
@Rodrick約300我想?然而,並非所有事情都會拋出錯誤代碼,因爲有些事情只是簡單的事件,如「任務在[服務器名稱]上啓動」。我只是想提供一個例子,每個字符串有多個正則表達式匹配。 – Anatelo