我有一个字符串[],它填充了来自日志文件的错误消息。 现在我需要将它们相互比较,因为很多错误是相同的。 然后我需要返回它们,以便使用正则表达式过滤整个日志文件。
这是我的代码:
foreach (string item in errSplit)
{
string[] lines = item.Split(new string[] {"\r\n", "\n"}, StringSplitOptions.None);
fisrt = lines.FirstOrDefault();
// Here I woud like to loop thru the sring and compare the values
// and save the string,so every error exists just onece
fehler.WriteLine(fisrt);
}
字符串看起来如何正确知道:
Services.Exceptions.Exceptions - System ...
Services.Exceptions.Exceptions - System ...
Services.Exceptions.Exceptions - 〜/ Default ...
答案 0 :(得分:0)
如果您想要的只是创建一个只包含任何一个条目的数组的版本,那么您可以通过几种方式来实现。使用LINQ,这可能是最简单的:
IEnumerable<string> yourFilteredErrors = yourErrors.Distinct();
如果您需要数组而不是IEnumerable
,请拨打.ToArray()
上的yourFilteredErrors
。
或者,如果您无法使用LINQ,则可以迭代:
List<string> filteredErrors = new List<string>();
foreach (string error in yourErrors) {
if (!filteredErrors.Contains(error)) {
filteredErrors.Add(error);
}
}
如果要考虑效率问题,您应该将List<string>
替换为HashSet<string>
。