在这种情况下,字符串到布尔值转换的最短方法

时间:2014-06-10 14:27:31

标签: string c#-4.0 int boolean .net-4.5

输入参数有4个可能的[string]值 - “0”,“1”,“false”,“true”。

这些可能的值需要转换为布尔值。将“0”映射为false,将“1”映射为true,将字符串“false”和“true”映射到相应的布尔值。

这样做的最短和最佳方式是什么?

3 个答案:

答案 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();