C #: Как использовать перегрузку символов для string. Replace ()Заменить (), чтобы заменить ничем?

#c# #string

#c# #строка

Вопрос:

У меня есть следующий метод расширения (который недействителен и не компилируется ATM):

     public static string Strip( this string str, char[] charsToStrip )
    {
        foreach( char c in charsToStrip )
        {
            str.Replace( c, "" );
        }

        return str;
    }
  

Вызов str.Replace() должен вызывать перегрузку ‘char’ Replace(), однако, используя эту перегрузку, я не уверен, что передать во 2-й параметр, чтобы указать ему заменить на «nothing».

Цель этой функции — повторить каждый символ в charsToStrip переменной и удалить все экземпляры этого символа в исходной строке, str .

Также, если моя функция изобретает велосипед, дайте мне знать. Я использую .NET 3.5

Заранее спасибо.

Ответ №1:

Попробуйте:

 str = str.Replace(c.ToString(), String.Empty);
  

Обратите внимание, что экземпляры string являются неизменяемыми. Таким образом, вам необходимо присвоить результат String.Replace , иначе результат будет потерян.

Ответ №2:

Пустого символа нет, поэтому используйте перегрузку строк:

 str = str.Replace( c.ToString(), "");
  

Комментарии:

1. Replace не является static методом на string .