public StringMatcher(MatchStrategy matchStrategy = MatchStrategy.TrieTree, ITokenizer tokenizer = null) { this.tokenizer = tokenizer ?? new SimpleTokenizer(); switch (matchStrategy) { case MatchStrategy.AcAutomaton: Matcher = new AcAutomaton <string>(); break; case MatchStrategy.TrieTree: Matcher = new TrieTree <string>(); break; default: throw new ArgumentException($"Unsupported match strategy: {matchStrategy.ToString()}"); } }