我想检查C#中字符串中的多个条件,但是它会抛出错误,说不能使用&& for string或boolean
if ((duStart.Trim() != "" && duStart.Trim() != null) &&(duEnd.Trim() != "" && duEnd.Trim() != null))
{
//do this
}
else
//do that
答案 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
的修剪版本),那么计算它两次似乎没什么意义。我在这里使用了额外的局部变量(trimmedStart
,trimmedEnd
)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
}