Как я преобразовываю строку в целое число в C#?
Если вы уверены, что у вас есть «реальное» число в вашей строке, или вам не страшны любые исключения, которые могут возникнуть, используйте это.
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;
}
Если вы уверены, что синтаксический анализ будет выполнен правильно, используйте
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 .
int i;
string whatever;
//Best since no exception raised
int.TryParse(whatever, out i);
//Better use try catch on this one
i = Convert.ToInt32(whatever);
string varString = "15";
int i = int.Parse(varString);
или
int varI;
string varString = "15";
int.TryParse(varString, out varI);
int.TryParse
более безопасен, поскольку если вы поместите что-то еще в varString
(например, «fsfdsfs»), вы получите исключение. Используя int.TryParse
, когда строка не может быть преобразована в int, она вернет 0
.
int a = int.Parse(myString);
или, что еще лучше, изучите int.TryParse(string)
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;
}
Сделайте что-нибудь вроде:
var result = Int32.Parse(str);
int i;
string result = Something;
i = Convert.ToInt32(result);