测试整数的第一个数字

时间:2017-12-10 03:21:17

标签: c# boolean

我正在使用一些我无权更改的代码。此代码返回一个整数,其中的第一个数字表示当前用户的权限状态。例如,ID为1234的提升用户将返回11234的userID。处于非提升级别的同一用户将返回01234.虽然这会整齐地连接用户引用,但我需要存储用户提升的布尔值分开。

我可以通过将整数转换为字符串值来获取第一个字符 - 但是,从整数转换为字符串,执行操作,转换为整数,然后布尔值似乎是不必要的。我该如何简化这个过程?

bool isElevated = Convert.ToBoolean(Convert.ToInt32((resultID.ToString()).Substring(0, 1)));

1 个答案:

答案 0 :(得分:1)

整数的第一个数字不能为零!唯一的例外是整数 0

您需要注意信息的存储方式。如果你从别人的自动魔法代码中收到int,那么你必须明白,当int前面有一个零时,它会被剪掉,因为它不重要数值。根据计算机,01仍然是1。

演示此问题的示例代码:

//Their process should add zero to beginning
bool isUserElevated = false;
//The ID before auto-magic
string yourInitialID = "1234";
//Other person's process of adding identifier
if (isUserElevated == true)
{
    yourInitialID = "1" + yourInitialID;
}
else
{
    yourInitialID = "0" + yourInitialID;
}

//uh oh whered my zero go
int realID = int.Parse(yourInitialID);
//The computer parsed 01234 as 1234



//Your process of identifying for bool
bool myNeededVar = false;

Console.WriteLine(realID);
Console.ReadKey();