C#中的Convert.ToInt32

Erw*_*rth 3 c#

我的问题是,当我想转换(result[i].JobOrder)为int (result[i].JobOrder).我有一个字符串120100 in .作为回报,我得到的不是整数,而是"0x0001d524".我无法理解为什么.

for (int i = 0; i < result.Count; i++)
{
    if (Convert.ToInt32(result[i].JobOrder) > maxJobOrder)
    {
        maxJobOrder = Convert.ToInt32(result[i].JobOrder);
    }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 15

您的代码有效,但您已将调试器设置为以十六进制显示整数.值0x0001d524是整数120100的十六进制表示.

这不是程序中的错误,而是IDE的配置选项.如果使用Visual Studio,则可以通过按"调试"工具栏中的"十六进制"按钮来更改此设置.

十六进制按钮


顺便说一句,如果您使用的是C#3或更新版本,则可以使用该Max方法查找最大值而不是循环来简化代码:

maxJobOrder = result.Max(x => int.Parse(x.JobOrder));
Run Code Online (Sandbox Code Playgroud)