下面展示的共享FormatHelper
类提供了一个简单的解决方案,使用两个重载方法StringToBoolean
的变体。
FormatHelper.StringToBoolean(String value)
FormatHelper.StringToBoolean(String value, Boolean NullOrEmptyDefault)
两种变体都提供了不区分大小写的字符串匹配。
1) 从字符串到布尔型的常规转换,将空字符串或null字符串默认为false
以下示例将导致一个boolean
值为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");
所有其他字符串值将导致 Boolean
值为 true
,例如:-
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");
注意:请在下面的类中编辑BooleanStringOff
的值,将更多(或更少)的false/off值包含其中。
2) 与上面的1)相同,但允许将默认值true
作为第二个参数提供给转换函数。
当String
值为空或null
时,将使用默认值。 如果丢失的字符串值需要表示为true
状态,则此选项非常有用。
以下代码示例将返回true
Boolean myBool = FormatHelper.StringToBoolean("",true);
以下代码示例将返回
false
。
Boolean myBool = FormatHelper.StringToBoolean("false",true);
这是FormatHelper
类的代码
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;
}
}
00000000
和11111111
。 - MCattle