C#中的Bool变量和字符串值比较

时间:2010-07-05 08:35:35

标签: c# string compare

如果我宣布bool isTrue = false; // init it to false

我可以从string strVal = T; // I assumed it is the TRUE value

获取值

我听说比较C#中的字符串

并不是一个好的代码风格

if (isTrue.tostring() == strVal) {}.

有一段时间,我将字符串变量转换为枚举,然后我可以比较它更方便。

有什么好方法吗?

8 个答案:

答案 0 :(得分:6)

是的,首先将字符串解析为布尔值。

试试这个:

bool someBool = false; 

string boolVal = "true";
bool stringBool;
bool.TryParse(boolVal, out stringBool);

if (someBool == boolVal) 
{

}

或者处理'T'和'F'尝试以下方法:

public bool ParseString(string maybeBool)
{
    return ParseString(maybeBool, false);
}

public bool ParseString(string maybeBool, bool def)
{
    bool stringBool;
    if (bool.TryParse(maybeBool, out stringBool))
        return stringBool;

    if (string.Equals(maybeBool, "T", StringComparison.OrdinalIgnoreCase))
        return true;

    if (string.Equals(maybeBool, "F", StringComparison.OrdinalIgnoreCase))
        return false;

    return def;
}

答案 1 :(得分:3)

请改用bool.Parse()方法。

答案 2 :(得分:1)

没有必要将布尔值转换为字符串以便比较两者。您可以直接比较两个布尔值:

if (isTrue == boolVal) {}

更新(更新后的问题)

您可以将字符串解析为布尔值,并在比较中使用结果布尔值(如上所述),使用bool.Parsebool.TryParse

答案 3 :(得分:1)

bool.Parse(boolVal) == isTrue 

答案 4 :(得分:1)

您可以比较布尔类型。

bool temp = bool.Parse(strVal);

if(isTrue == temp)

答案 5 :(得分:1)

我使用的另一个版本只是Convert.ToBoolean(stringFromBoolVal)

问候

答案 6 :(得分:0)

如果你真的想进行字符串比较:

if (string.Equals(isTrue.ToString(), strValue)) { }

答案 7 :(得分:0)

如何尝试这种简单的方法来确定bool变量isTrue的值:

isTrue = strVal == "T";
如果strVal等于“T”,

isTrue将返回true。如果没有,则返回false。