在C#中检查字符串的多个条件

时间:2011-01-10 20:11:00

标签: c#-3.0

我想检查C#中字符串中的多个条件,但是它会抛出错误,说不能使用&& for string或boolean

if ((duStart.Trim() != "" && duStart.Trim() != null) &&(duEnd.Trim() != "" && duEnd.Trim() != null))
{
//do this
}
else
//do that

3 个答案:

答案 0 :(得分:2)

您提供的代码编译得很好。这是一个简短但完整的程序 - 我已经改变了你的代码行的空白,但这就是全部:

using System;

class Test
{
    static void Main()
    {
        string duStart = "X";
        string duEnd = "X";
        if ((duStart.Trim() != "" && duStart.Trim() != null) &&
            (duEnd.Trim() != "" && duEnd.Trim() != null))
        {
            Console.WriteLine("Yes");
        }
    }
}

说完了:

  • 如果您要多次使用相同的值(例如duStart的修剪版本),那么计算它两次似乎没什么意义。我在这里使用了额外的局部变量(trimmedStarttrimmedEnd
  • Trim 从不返回null,因此这些测试毫无意义。
  • 在这里使用string.IsNullOrWhitespace可能是个更好的主意。为什么要创建你永远不会使用的字符串?

答案 1 :(得分:1)

您可以通过以下方式简化条件:

if( !string.IsNullOrEmpty(duStart.Trim()) && !string.isNullOrEmpty(duEnd.Trim()) )
{
}

答案 2 :(得分:0)

首先检查duStart和duEnd的Null。然后尝试修剪字符串。修剪不能应用于空值。所以,下面的代码块应该适合你。

if ((duStart != null && duStart.Trim() != "") && (duEnd != null && duEnd.Trim() != ""))
{ 
   //do this 
}
else
{
   //do that 
}