1

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

需要检查一个bool返回的值是真还是假

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

4 回答 4

0

没有 Linq,但你可以写成

if (checkvalue == "true" || checkvalue == "false")
{
    taxSpecification = 3;
}else
{
  // wrong input 
}
于 2012-06-21T10:13:07.527 回答
0

您可以解析字符串以返回布尔值:

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 部分,但可以帮助循环体。

于 2012-06-21T10:06:11.373 回答
0

尝试这个

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

        if (bool.TryParse(checkvalue, out myRes))
        {
            tax = (myRes) ? 3 : 4;
        }
于 2012-06-21T10:08:23.097 回答
0

当一个简单的 .Net 2.0 逻辑就足够时,为什么要使用 LINQ 或一些花哨的东西

switch (nodeIterator.Current.Value.ToString())
{
    case "true":
    case "false":
         taxSpecification = 3;
    break;
}
于 2012-06-21T10:16:08.710 回答