Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 此场景中字符串到布尔值转换的最短方法_String_C# 4.0_Int_Boolean_.net 4.5 - Fatal编程技术网

String 此场景中字符串到布尔值转换的最短方法

String 此场景中字符串到布尔值转换的最短方法,string,c#-4.0,int,boolean,.net-4.5,String,C# 4.0,Int,Boolean,.net 4.5,对于输入参数,我有4个可能的[string]值——“0”、“1”、“false”、“true” 这些可能的值需要转换为布尔值。“0”映射为false,“1”映射为true,字符串“false”和“true”映射为相应的布尔值 做这件事的最短和最佳方法是什么?您可以包括str==“1”: 值得一提的是,一种扩展方法: public static bool ParseBool(this string input, bool oneIsTrue = true) { bool b; re

对于输入参数,我有4个可能的[string]值——“0”、“1”、“false”、“true”

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


做这件事的最短和最佳方法是什么?

您可以包括
str==“1”

值得一提的是,一种扩展方法:

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());
}

我认为这应该做到:

//string value is stored in str
boolean bool = (str.equals("0")||str.equals("false"))?false:true;
试试这个简单的

string[] ar = { "0", "1", "true", "false" };
var boolArray = ar.Select(x => (x=="1"||x=="true")?true:false).ToArray();

这与您最初的答案完全不同;)但是,
out b
引用有什么用呢?@Moriarty:这个扩展相当于
foreach
,不是吗?我添加扩展只是因为OP要求最短的代码。没有比str.ParseBool()更短的了。使用
bool.TryParse
时需要
out
。这是一个
out
参数。投票-1因为“最短和最佳”的问题可能只有基于意见的答案,您不提供任何可测量的场景,它属于这一类别
string[] ar = { "0", "1", "true", "false" };
var boolArray = ar.Select(x => (x=="1"||x=="true")?true:false).ToArray();