Bra*_*don 135

如果您确定它将正确解析,请使用

int.Parse(string)
Run Code Online (Sandbox Code Playgroud)

如果你不是,请使用

int i;
bool success = int.TryParse(string, out i);
Run Code Online (Sandbox Code Playgroud)

警告!在下面的情况下,i将等于0,而不是10之后TryParse.

int i = 10;
bool failure = int.TryParse("asdf", out i);
Run Code Online (Sandbox Code Playgroud)

这是因为TryParse使用out参数,而不是ref参数.

  • 请注意,如果你有int i = 10; 并使用int.TryParse("asdf",out i); 我将包含0而不是10!这是因为TryParse使用out变量,而不是ref. (3认同)
  • @sslaitha,谢谢.如果它充分回答了您的问题,请记住将其标记为答案. (2认同)
  • "谨慎"适用于第三个例子 - 而不是第二个例子.让我感到困惑,因为我期望"这个"引用上面的例子,而不是下面. (2认同)

dev*_*xer 22

int myInt = System.Convert.ToInt32(myString);
Run Code Online (Sandbox Code Playgroud)

正如其他几个人提到的,你也可以使用int.Parse()int.TryParse().

如果您确定string将永远是int:

int myInt = int.Parse(myString);
Run Code Online (Sandbox Code Playgroud)

如果您想检查是否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;
}
Run Code Online (Sandbox Code Playgroud)


Nei*_*l N 9

int a = int.Parse(myString);
Run Code Online (Sandbox Code Playgroud)

或者更好,看看 int.TryParse(string)


Mad*_*Boy 6

string varString = "15";
int i = int.Parse(varString);
Run Code Online (Sandbox Code Playgroud)

要么

int varI;
string varString = "15";
int.TryParse(varString, out varI);
Run Code Online (Sandbox Code Playgroud)

int.TryParse更安全,因为如果你把其他东西放进去varString(例如"fsfdsfs"),你会得到一个例外.通过使用int.TryParse当string无法转换为int时,它将返回0.


Dan*_*dor 5

如果您确定字符串中包含"真实"数字,或者您对可能出现的任何异常感到满意,请使用此选项.

string s="4";
int a=int.Parse(s);
Run Code Online (Sandbox Code Playgroud)

要进一步控制该过程,请使用

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;
}
Run Code Online (Sandbox Code Playgroud)


Tom*_*ana 5

做类似的事情:

var result = Int32.Parse(str);
Run Code Online (Sandbox Code Playgroud)