linq检查一个字符串值

时间:2012-06-21 10:01:16

标签: c# c#-4.0 c#-3.0

使用Linq是否有更好的方法来编写以下内容。

需要检查bool返回的值是否为true和false

string checkvalue = nodeIterator.Current.Value.ToString();
if (checkvalue == "true")
{
    taxSpecification = 3;
}
else if (checkvalue == "false")
{
    taxSpecification = 3;
}

4 个答案:

答案 0 :(得分:0)

您可以解析字符串以返回bool:

bool myBool;
if (!bool.TryParse(checkvalue, out myBool)
    throw new Exception("This is not a valid bool");
...

如果您想要更通用的方法(即字符串可能不是有效的TryParse值):

if(new[] {"true", "false"}.Contains(checkvalue))
    taxSpecification = 3;

这并没有真正解决Linq部分,但可以帮助循环体。

答案 1 :(得分:0)

试试这个

        var checkvalue = "false";
        bool myRes = false;
        int tax = 0;

        if (bool.TryParse(checkvalue, out myRes))
        {
            tax = (myRes) ? 3 : 4;
        }

答案 2 :(得分:0)

没有Linq,但你可以把它写成

if (checkvalue == "true" || checkvalue == "false")
{
    taxSpecification = 3;
}else
{
  // wrong input 
}

答案 3 :(得分:0)

为什么在简单的.Net 2.0逻辑足够

时使用LINQ或一些奇特的东西
switch (nodeIterator.Current.Value.ToString())
{
    case "true":
    case "false":
         taxSpecification = 3;
    break;
}