I'd use Regex
for this.
public static class StringCleaner
{
private const Pattern = @"[^a-zA-Z0-9 \#\\\'\(\)\+\,\-\.\/\[\]_`\{\|\}\~\:\?@]";
public static string Clean(string address, string replacement = "") =>
Regex.Replace(address, Pattern, replacement);
}