1

Linq を使用して以下を記述するより良い方法はありますか。

bool によって返される値が true か false かを確認する必要があります

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

4 に答える 4

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の部分に対応していませんが、ループの本体に役立つ可能性があります。

于 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

Linq はありませんが、次のように記述できます。

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

単純な .Net 2.0 ロジックで十分なのに、なぜ LINQ などの凝ったものを使用するのか

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