CodeProject: Aho-Corasick string matching in C#
In this article, I will describe the implementation of an efficient Aho-Corasick algorithm for pattern matching. In simple words, this algorithm can be used for searching a text for specified keywords. The following code is useful when you have a set of keywords and you want to find all occurrences of a keywords in the text or check if any of the keywords is present in the text. You should use this algorithm especially if you have a large number of keywords that don’t change often, because in this case, it is much more efficient than other algorithms that can be simply implemented using the .NET class library.