Как преобразовать строку в целое число в С#

Как преобразовать строку в целое число в С#?


person user282078    schedule 26.02.2010    source источник
comment
возможный дубликат stackoverflow.com/ вопросы/1019793/   -  person John Rasch    schedule 03.05.2010


Ответы (9)


Если вы уверены, что он будет правильно проанализирован, используйте

int.Parse(string)

Если нет, используйте

int i;
bool success = int.TryParse(string, out i);

Внимание! В приведенном ниже случае i будет равно 0, а не 10 после TryParse.

int i = 10;
bool failure = int.TryParse("asdf", out i);

Это связано с тем, что TryParse использует параметр out, а не параметр ref.

person Brandon    schedule 26.02.2010
comment
@sslaita, спасибо. Если он достаточно ответил на ваш вопрос, не забудьте отметить его как ответ. - person Brandon; 26.02.2010
comment
Просто обратите внимание, что если у вас есть int i = 10; и используйте int.TryParse(asdf, out i); что я буду содержать 0 не 10!!! Это связано с тем, что TryParse использует выходную переменную, а не ссылку. - person CaffGeek; 03.05.2010
comment
Предостережение относится к третьему примеру, а не ко второму. Немного озадачил меня, так как я ожидал, что this будет относиться к примеру выше, а не ниже. - person peter_mcc; 06.02.2014

int myInt = System.Convert.ToInt32(myString);

Как уже упоминалось, вы также можете использовать int.Parse() и int.TryParse().

Если вы уверены, что string всегда будет int:

int myInt = int.Parse(myString);

Если вы хотите сначала проверить, действительно ли string является int:

int myInt;
bool isValid = int.TryParse(myString, out myInt); // the out keyword allows the method to essentially "return" a second value
if (isValid)
{
    int plusOne = myInt + 1;
}
person devuxer    schedule 26.02.2010

int a = int.Parse(myString);

или еще лучше, загляните в int.TryParse(string)

person Neil N    schedule 26.02.2010

string varString = "15";
int i = int.Parse(varString);

or

int varI;
string varString = "15";
int.TryParse(varString, out varI);

int.TryParse безопаснее, так как если вы поместите что-то еще в varString (например, "fsfdsfs"), вы получите исключение. При использовании int.TryParse, когда строка не может быть преобразована в int, возвращается 0.

person MadBoy    schedule 26.02.2010

Если вы уверены, что в вашей строке есть «настоящее» число, или вам удобно любое исключение, которое может возникнуть, используйте это.

string s="4";
int a=int.Parse(s);

Для большего контроля над процессом используйте

string s="maybe 4";
int a;
if (int.TryParse(s, out a)) {
    // it's int;
}
else {
    // it's no int, and there's no exception;
}
person Daniel Mošmondor    schedule 26.02.2010

Сделайте что-нибудь вроде:

var result = Int32.Parse(str);
person Tomas Vana    schedule 26.02.2010


bool result = Int32.TryParse(someString, out someNumeric)

Этот метод попытается преобразовать someString в someNumeric и вернет result в зависимости от успешного преобразования, true в случае успешного преобразования и false в случае неудачного преобразования. Обратите внимание, что этот метод не будет генерировать исключение, если преобразование не удалось, как это сделал метод Int32.Parse, и вместо этого он возвращает ноль для someNumeric.

Для получения дополнительной информации вы можете прочитать здесь:

https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2
&
Как преобразовать строку в целое число в C#

person jet_choong    schedule 19.07.2016

Вы можете использовать либо,

    int i = Convert.ToInt32(myString);

or

    int i =int.Parse(myString);
person Deadlock    schedule 07.09.2015