Тестирование C#, чтобы видеть, является ли строка целым числом?

Назад в день, мы использовали бы определенный "сервер блокировки" в сети для обработки этого. Bleh.

Ваш сервер базы данных мог бы иметь ресурсы специально для выполнения такого рода вещи. SQL SERVER MS имеет блокировки приложения, применимые через sp_getapplock / sp_releaseapplock процедуры.

59
задан Jon Seigel 18 May 2010 в 02:01
поделиться

3 ответа

Используйте метод int.TryParse .

string x = "42";
int value;
if(int.TryParse(x, out value))
  // Do something

В случае успешного синтаксического анализа он вернет истину, а результат будет иметь значение в виде целого числа.

145
ответ дан 24 November 2019 в 18:01
поделиться

Я помню, как смотрел сравнение производительности между int.TryParse и int.Parse Regex, а char.IsNumber и char.IsNumber было самым быстрым. В любом случае, какой бы ни была производительность, вот еще один способ сделать это.

        bool isNumeric = true;
        foreach (char c in "12345")
        {
            if (!Char.IsNumber(c))
            {
                isNumeric = false;
                break;
            }
        }
15
ответ дан 24 November 2019 в 18:01
поделиться

Если вы просто хотите проверить тип переданной переменной, вы, вероятно, можете использовать:

    var a = 2;
    if (a is int)
    {
        //is integer
    }
    //or:
    if (a.GetType() == typeof(int))
    {
        //is integer
    }
11
ответ дан 24 November 2019 в 18:01
поделиться