Два варианта.Используя Linq на .Net 4 (на 3.5 это похоже - у него не так много перегрузок всех методов):
string s1 = String.Concat(str.Where(Char.IsDigit));
Или с использованием регулярного выражения:
string s2 = Regex.Replace(str, @"\D+", "");
Я должен добавить, что IsDigit
и \D
поддерживают Unicode, поэтому он принимает довольно много цифр, кроме 0-9, например "542abc٣٤"
.
Вы можете легко адаптировать их к проверке между 0
и 9
или [^0-9]+
.