Класс FormatHelper
общего доступа, показанный ниже, предоставляет простое решение с использованием двух вариантов перегруженного метода, называемого StringToBoolean
.
FormatHelper.StringToBoolean(String value)
FormatHelper.StringToBoolean(String value, Boolean NullOrEmptyDefault)
Оба варианта обеспечивают совпадение строк без учета регистра
1) Нормальное преобразование из строки в логическое значение по умолчанию для пустых или нулевых строк в 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;
}
}