回答
很实际很简单:
bool b = str == "1";
bool b = str.Equals("1")? true : false;
甚至更好,如建议在下面留言:
bool b = str.Equals("1");
我认为形式为'x?真实:假幽默。 – 2012-03-16 18:48:23
'bool b = str.Equals(“1”)'乍一看很好,更直观。 – 2012-03-16 18:52:53
忽略这个问题的具体需求,虽然其不是一个好想法将一个字符串投射到布尔,一种方法是在Convert类上使用ToBoolean()方法:
bool boolVal = Convert.ToBoolean("true");
或扩展方法做你正在做什么奇怪的映射:
public static class MyStringExtensions
{
public static bool ToBoolean(this string value)
{
switch (value.ToLower())
{
case "true":
return true;
case "t":
return true;
case "1":
return true;
case "0":
return false;
case "false":
return false;
case "f":
return false;
default:
throw new InvalidCastException("You can't cast a weird value to a bool!");
}
}
}
Convert.ToBoolean的行为显示在http://stackoverflow.com/questions/7031964/what-is-the-difference-between-convert-tobooleanstring-and-boolean-parsestrin/26202581#26202581 – 2017-01-30 11:35:37
我做的东西一点点扩展,捎带上穆罕默德Sepahvand的概念:
public static bool ToBoolean(this string s)
{
string[] trueStrings = { "1", "y" , "yes" , "true" };
string[] falseStrings = { "0", "n", "no", "false" };
if (trueStrings.Contains(s, StringComparer.OrdinalIgnoreCase))
return true;
if (falseStrings.Contains(s, StringComparer.OrdinalIgnoreCase))
return false;
throw new InvalidCastException("only the following are supported for converting strings to boolean: "
+ string.Join(",", trueStrings)
+ " and "
+ string.Join(",", falseStrings));
}
我知道这不会回答你的问题,而只是为了帮助其他人。如果你正试图转换“真”或“假”的字符串为布尔值:
尝试Boolean.Parse
bool val = Boolean.Parse("true"); ==> true
bool val = Boolean.Parse("True"); ==> true
bool val = Boolean.Parse("TRUE"); ==> true
bool val = Boolean.Parse("False"); ==> false
bool val = Boolean.Parse("1"); ==> Exception!
bool val = Boolean.Parse("diffstring"); ==> Exception!
需要Powershell脚本阅读一些XML数据,这是完美的! – Alternatex 2017-10-12 10:37:13
这是我尝试以最宽容的字符串为bool的转换是还是有用的,基本上键控只关闭第一个字符。
public static class StringHelpers
{
/// <summary>
/// Convert string to boolean, in a forgiving way.
/// </summary>
/// <param name="stringVal">String that should either be "True", "False", "Yes", "No", "T", "F", "Y", "N", "1", "0"</param>
/// <returns>If the trimmed string is any of the legal values that can be construed as "true", it returns true; False otherwise;</returns>
public static bool ToBoolFuzzy(this string stringVal)
{
string normalizedString = (stringVal?.Trim() ?? "false").ToLowerInvariant();
bool result = (normalizedString.StartsWith("y")
|| normalizedString.StartsWith("t")
|| normalizedString.StartsWith("1"));
return result;
}
}
我用下面的代码将字符串转换为布尔值。
Convert.ToBoolean(Convert.ToInt32(myString));
如果只有两种可能性是“1”和“0”,则不必调用Convert.ToInt32。如果你想考虑其他情况,var isTrue = Convert.ToBoolean(“true”)== true && Convert.ToBoolean(“1”); //都是真的。 – TamusJRoyce 2017-02-08 15:06:42
看穆罕默德Sepahvand回答Michael Freidgeim评论! – TamusJRoyce 2017-02-08 15:49:32
private static readonly ICollection<string> PositiveList = new Collection<string> { "Y", "Yes", "T", "True", "1", "OK" };
public static bool ToBoolean(this string input)
{
return input != null && PositiveList.Any(λ => λ.Equals(input, StringComparison.OrdinalIgnoreCase));
}
- 1. 将字符串转换为布尔
- 2. 将字符串转换为布尔值
- 3. 将字符串转换为布尔值并检查布尔值
- 4. 不能将字符串转换为布尔,但没有布尔?
- 5. 将字符串转换成布尔
- 6. Ruby:如何将字符串转换为布尔型
- 7. 如何将字符串转换为布尔值?
- 8. 如何将搜索字符串转换为布尔条件?
- 9. 如何将字符串转换为布尔表达式
- 10. 如何将字符串对象转换为布尔对象?
- 11. 如何将布尔值转换为本地化字符串
- 12. 如何将字符串转换为布尔数组?
- 13. 如何在ActionScript中将字符串转换为布尔值?
- 14. 如何将这些字符串转换为布尔值?
- 15. 如何将字符串转换为布尔值?
- 16. 如何将字符串转换为JavaScript中的布尔值?
- 17. 如何将“False”字符串转换为布尔值false?
- 18. 如何将一个字符串转换为布尔值?
- 19. XSLT:如何将字符串值转换为布尔变量?
- 20. 如何将布尔表达式字符串转换为对象?
- 21. 如何使用推土机将布尔转换为字符串?
- 22. 我们如何将布尔转换为Haskell中的字符串
- 23. 字符串到布尔转换行为
- 24. 在C#中将布尔值转换为字符串值
- 25. 将布尔转换为字符串在Datagridview中?
- 26. BASH将字符串转换为布尔变量
- 27. 无法将类型字符串转换为布尔型
- 28. Scala:将字符串转换为布尔值的优雅
- 29. C将字符串转换为布尔数组
- 30. 在Julia中将字符串转换为布尔值
如果有任何意外的值可以在输入,考虑到使用的TryParse(http://stackoverflow.com/questions/18329001/parse-to-boolean-or-check-string-value/ 18329085#18329085) – 2017-01-30 11:33:00