输入参数有4个可能的[string]值 - “0”,“1”,“false”,“true”。
这些可能的值需要转换为布尔值。将“0”映射为false,将“1”映射为true,将字符串“false”和“true”映射到相应的布尔值。
这样做的最短和最佳方式是什么?
答案 0 :(得分:1)
您可以加入str == "1"
:
foreach(string str in new[]{ "0", "1", "false", "true"})
{
bool isTrue;
isTrue = Boolean.TryParse(str, out isTrue) || str == "1";
Console.WriteLine(isTrue);
}
对于它的价值,一种扩展方法:
public static bool ParseBool(this string input, bool oneIsTrue = true)
{
bool b;
return (oneIsTrue && input == "1") || bool.TryParse(input, out b);
}
// ...
foreach(string str in new[]{ "0", "1", "false", "true", "True", "TRUE"})
{
Console.WriteLine(str.ParseBool());
}
答案 1 :(得分:1)
我认为应该这样做:
//string value is stored in str
boolean bool = (str.equals("0")||str.equals("false"))?false:true;
答案 2 :(得分:1)
试试这个简单的。
string[] ar = { "0", "1", "true", "false" };
var boolArray = ar.Select(x => (x=="1"||x=="true")?true:false).ToArray();