如何在C#中检查两个字符串是否匹配或者是否为null

时间:2011-09-09 14:42:18

标签: c# string null

我尝试了以下内容:

(id == title) | (id.IsNullOrEmpty) ? "class='enabled'" : ""

但是它给出了一条消息“错误22运营商'|'不能应用于'bool'和'method group'类型的操作数

谁能告诉我什么是错的。 id和title都是字符串。

5 个答案:

答案 0 :(得分:10)

您似乎正在使用|而不是||,我不确定您是否将IsNullOrEmpty定义为扩展方法,但您正在使用()调用它。那或者直接打电话给String.IsNullOrEmpty

尝试以下

(id == title || String.IsNullOrEmpty(id)) ? "class='enabled'" : ""

答案 1 :(得分:5)

我不是C#开发人员,但请尝试||而不是|。这里解释了运算符之间的差异http://msdn.microsoft.com/en-us/library/aa691310(v=vs.71).aspx

另外,==是否正确比较C#中的字符串?在Java中,您需要使用.equals()

(更新:显然|与按位运算符无关。)

答案 2 :(得分:0)

如果你想测试“这个字符串是否为null(或为空)或等于另一个字符串”,那么就说:

if (string.IsNullOrEmpty(id) || id.Equals(title))
{
    // Code here
}

作为三元手术:

var result = (string.IsNullOrEmpty(id) || id.Equals(title) ? "class='enabled'" : "";

答案 3 :(得分:0)

请尝试这样:

(id == title) || id.IsNullOrEmpty() ? "class='enabled'" : ""

答案 4 :(得分:0)

你正在使用按位OR(|)。你需要逻辑OR(||)。

if ( id == null || id == title )
{
   // id is null or id equals title.
}

请注意,等于运算符(==)区分大小写。要进行不区分大小写的比较,请使用静态方法String.Compare。

if ( id == null || String.Compare( id, title, true ) == 0 )
{
   // id is null or id equals title (ignoring case).
}
相关问题