我有大约10万个Outlook邮件项目,每个正文大约有500-600个字符。 我有一个包含580个关键字的列表,必须在每个正文中搜索这些关键字,然后将它们附加到底部。
我相信我已经提高了大多数函数的效率,但它仍然需要很长时间。即使是100封电子邮件也需要大约4秒钟。
对于每个关键字列表(每个列表包含290个关键字),我运行两个函数。
public List<string> Keyword_Search(HtmlNode nSearch)
{
var wordFound = new List<string>();
foreach (string currWord in _keywordList)
{
bool isMatch = Regex.IsMatch(nSearch.InnerHtml, "\\b" + @currWord + "\\b",
RegexOptions.IgnoreCase);
if (isMatch)
{
wordFound.Add(currWord);
}
}
return wordFound;
}
有没有什么方法可以提高这个函数的效率?
另一个可能会拖慢速度的因素是我使用HTML Agility Pack来遍历一些节点并提取正文(nSearch.InnerHtml)。_keywordList是一个列表项,而不是一个数组。
StopWatch
类。 - Dirk Vollmar