禁止されている単語を含む文字列のリストがあります。文字列に禁止されている単語が含まれているかどうかを確認し、文字列から削除する効率的な方法は何ですか?現時点では、私はこれを持っています:
cleaned = String.Join(" ", str.Split().Where(b => !bannedWords.Contains(b,
StringComparer.OrdinalIgnoreCase)).ToArray());
これは、単一の禁止された単語に対しては正常に機能しますが、フレーズに対しては機能しません(例more than one word
)。のインスタンスmore than one word
もすべて削除する必要があります。私が試してみようと思った別の方法は、ListのContainsメソッドを使用することですが、これはブール値のみを返し、一致する単語のインデックスは返しません。一致する単語のインデックスを取得できれば、次のように使用できます。String.Replace(bannedWords[i],"");