Le partage FormatHelper
présentée ci-dessous fournit une solution simple en utilisant deux variantes d'une méthode surchargée appelée StringToBoolean
.
FormatHelper.StringToBoolean(String value)
FormatHelper.StringToBoolean(String value, Boolean NullOrEmptyDefault)
Les deux variantes prévoient une correspondance entre les chaînes de caractères et les cas.
1) La conversion normale d'une chaîne de caractères en un booléen, en attribuant par défaut aux chaînes vides ou nulles la valeur suivante false
Les exemples suivants donnent lieu à un boolean
valeur de false
:-
Boolean myBool = FormatHelper.StringToBoolean("");
Boolean myBool = FormatHelper.StringToBoolean("0");
Boolean myBool = FormatHelper.StringToBoolean("false");
Boolean myBool = FormatHelper.StringToBoolean("False");
Boolean myBool = FormatHelper.StringToBoolean("no");
Boolean myBool = FormatHelper.StringToBoolean("off");
Toute autre valeur de chaîne donnera lieu à un Boolean
valeur de true
tels que:-
Boolean myBool = FormatHelper.StringToBoolean("1");
Boolean myBool = FormatHelper.StringToBoolean("true");
Boolean myBool = FormatHelper.StringToBoolean("True");
Boolean myBool = FormatHelper.StringToBoolean("yes");
Boolean myBool = FormatHelper.StringToBoolean("xyz blah");
Note : Modifier la valeur de BooleanStringOff
dans la classe ci-dessous pour inclure plus (ou moins) de valeurs pour false/off
2) Suit les mêmes règles que 1) ci-dessus mais permet une valeur par défaut de true
à fournir comme deuxième argument de la conversion.
La valeur par défaut est utilisée lorsque le String
est vide ou null
. Ceci est utile si une valeur de chaîne manquante doit signifier une true
l'État.
L'exemple de code suivant renverra true
Boolean myBool = FormatHelper.StringToBoolean("",true);
L'exemple de code suivant renverra false
Boolean myBool = FormatHelper.StringToBoolean("false",true);
C'est le code pour le FormatHelper
classe
public class FormatHelper
{
public static Boolean StringToBoolean(String str)
{
return StringToBoolean(str, false);
}
public static Boolean StringToBoolean(String str, Boolean bDefault)
{
String[] BooleanStringOff = { "0", "off", "no" };
if (String.IsNullOrEmpty(str))
return bDefault;
else if(BooleanStringOff.Contains(str,StringComparer.InvariantCultureIgnoreCase))
return false;
Boolean result;
if (!Boolean.TryParse(str, out result))
result = true;
return result;
}
}