The shared FormatHelperclass shown below provides a simple solution using two variations of an overloaded method called StringToBoolean.
FormatHelper.StringToBoolean(String value)
FormatHelper.StringToBoolean(String value, Boolean NullOrEmptyDefault)
Both variations provide a case-insentive string match
1) The normal convertion from string to boolean defaulting empty or null strings to false
The following examples will result in a boolean value of 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");
All other string values will result in a Boolean value of true such as:-
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: Edit the value of BooleanStringOff in the class below to include more (or less) values for false/off
2) Follows the same rules as 1) above but allows a default value of true to be supplied as the 2nd argument to the conversion.
The default value is used when the String value is empty or null. This is useful if a missing string value needs to signify a true state.
The following code example will return true
Boolean myBool = FormatHelper.StringToBoolean("",true);
The following code example will return false
Boolean myBool = FormatHelper.StringToBoolean("false",true);
This is the code for the FormatHelper class
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;
}
}