ラムダ式を再帰的に使用して、文字列内の単語の出現回数をカウントするインライン関数を作成しようとしています。
関数:
Func<string, string, int> getOccurrences = null;
getOccurrences = (text, searchTerm) =>
text.IndexOf(searchTerm, StringComparison.OrdinalIgnoreCase) == -1
? 0
: getOccurrences(
text.Substring(
text.IndexOf(searchTerm, StringComparison.OrdinalIgnoreCase)
+ searchTerm.Length),
searchTerm) + 1;
問題は、メソッドを 2 回呼び出していることですIndexOf
。1 回目は再帰的なブレーク条件用で、2 回目はそれを追加するための値を取得するためのものです。
一度呼び出すことをお勧めしますか?
前もって感謝します。