将int转换为布尔值的更好方法

Dee*_*Sea 30 c# int boolean

输入int值只包含1或0.我可以通过编写if else语句来解决问题.

有没有办法把它int变成一个boolean

谢谢

Eve*_*lie 89

int i = 0;
bool b = Convert.ToBoolean(i);
Run Code Online (Sandbox Code Playgroud)

  • 这是我能在这里看到的最佳解决方案. (4认同)
  • 这应该是接受的答案,因为它字面上回答了问题:转换. (4认同)

Cor*_*rak 77

我假设0手段false(许多编程语言就是这种情况).这意味着truenot 0(有些语言使用-1一些其他人使用1;不伤害是要么兼容).所以你可以写:

bool boolValue = intValue != 0;
Run Code Online (Sandbox Code Playgroud)


Raw*_*ing 6

开玩笑,如果您只希望输入的整数是 0 或 1,那么您真的应该检查一下是否是这种情况。

int yourInteger = whatever;
bool yourBool;
switch (yourInteger)
{
    case 0: yourBool = false; break;
    case 1: yourBool = true;  break;
    default:
        throw new InvalidOperationException("Integer value is not valid");
}
Run Code Online (Sandbox Code Playgroud)

开箱即用的Convert不会检查这个;也不会yourInteger (==|!=) (0|1)

  • 不是反对,而是“switch”案例在这里太过分了。 (3认同)
  • @RamilAliyev 不是根据问题。 (3认同)
  • 真的是这样吗?在我看来,选项是嵌套的三元组,或者是 if/else if/else 块,这些都不是更简单或更容易阅读。@Marc.2377 - 不要试图显得尴尬,而是真正好奇你希望如何完成。 (2认同)
  • @Rawling - 这个问题还要求比使用 if/else 的“更好的方法”。您专注于输入验证。伊芙莉注重可读性,而我则注重减少打字。OP 没有具体说明他们认为什么是“更好”。其他用户现在可以决定哪个答案对他们来说“更好”。 (2认同)