C# でのより大きな文字列内の部分文字列のすべての位置の検索
より大きな文字列内の特定の部分文字列のすべての出現を検索するタスクはプログラミングにおける一般的な課題です。 C# では、IndexOf メソッドは直接的なアプローチを提供しますが、部分文字列の複数のインスタンスを取得できません。
より良い代替方法は、拡張メソッドを利用することです。実装は次のとおりです。
public static List<int> AllIndexesOf(this string str, string value) { if (String.IsNullOrEmpty(value)) throw new ArgumentException("the string to find may not be empty", "value"); List<int> indexes = new List<int>(); for (int index = 0;; index += value.Length) { index = str.IndexOf(value, index); if (index == -1) return indexes; indexes.Add(index); } }
この拡張メソッドを使用するには、単にそれが存在する名前空間をインポートし、文字列で直接呼び出します。
List<int> indexes = "fooStringfooBar".AllIndexesOf("foo");
このメソッドは、のすべてのインスタンスを効率的に識別します。大きい文字列内の部分文字列。その位置の包括的なリストを提供します。
以上がC# を使用して文字列内のすべての部分文字列を検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。