Таким образом, вы получите первую цифру из строки.
string stringResult = "";
bool digitFound = false;
foreach (var res in stringToTest)
{
if (digitFound && !Char.IsDigit(res))
break;
if (Char.IsDigit(res))
{
stringResult += res;
digitFound = true;
}
}
int? firstDigitInString = digitFound ? Convert.ToInt32(stringResult) : (int?)null;
Еще одна альтернатива, которая должна это сделать:
string[] numbers = Regex.Split(input, @"\D+");
Я не знаю, почему я получил пустую строку какрезультат в списке чисел выше, хотя?
Решено, как показано ниже, но похоже, что регулярное выражение должно быть улучшено, чтобы сделать это немедленно.
string[] numbers = Regex.Split(firstResult, @"\D+").Where(x => x != "").ToArray();