DeepSea
DeepSea

Reputation: 3192

Better way to convert an int to a boolean

The input int value only consist out of 1 or 0. I can solve the problem by writing a if else statement.

Isn't there a way to cast the int into a boolean?

Upvotes: 81

Views: 185697

Answers (4)

Stevan Dejanovic
Stevan Dejanovic

Reputation: 13

I think this is easiest way:

int i=0;
bool b=i==1;

Upvotes: -3

Corak
Corak

Reputation: 2778

I assume 0 means false (which is the case in a lot of programming languages). That means true is not 0 (some languages use -1 some others use 1; doesn't hurt to be compatible to either). So assuming by "better" you mean less typing, you can just write:

bool boolValue = intValue != 0;

Upvotes: 160

Rawling
Rawling

Reputation: 50104

Joking aside, if you're only expecting your input integer to be a zero or a one, you should really be checking that this is the case.

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");
}

The out-of-the-box Convert won't check this; nor will yourInteger (==|!=) (0|1).

Upvotes: 7

Evelie
Evelie

Reputation: 3059

int i = 0;
bool b = Convert.ToBoolean(i);

Upvotes: 198

Related Questions