web-dev-qa-db-fra.com

Meilleure façon de convertir un int en booléen

La valeur d'entrée int n'est constituée que de 1 ou 0. Je peux résoudre le problème en écrivant un if else déclaration.

N'y a-t-il pas un moyen de convertir le int en boolean?

27
DeepSea

Je suppose 0 signifie false (ce qui est le cas dans de nombreux langages de programmation). Cela signifie que true est not 0 (certaines langues utilisent -1 d'autres utilisent 1; ne fait pas de mal à être compatible avec non plus). Donc, en supposant que "mieux" signifie moins de frappe, vous pouvez simplement écrire:

bool boolValue = intValue != 0;
69
Corak

Blague à part, si vous vous attendez à ce que votre entier d'entrée soit un zéro ou un, vous devriez vraiment vérifier que c'est le cas.

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

Le Convert prêt à l'emploi ne vérifiera pas cela; ni yourInteger (==|!=) (0|1).

4
Rawling