#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
.