请考虑以下代码段:
char ch = '[';
string d = "[";
Console.WriteLine(ch.Equals(d))
输出为false
。
当你想要它true
时,你会怎么做?
编辑:
变量d
是示例中的一个字符串,但实际上它可以是任何对象......
答案 0 :(得分:2)
使用ToString();
var result = '['.ToString().Equals("[");
答案 1 :(得分:2)
如果你希望它成真,你会怎么做?
使用char
ch.ToString
ch转换为字符串
Console.WriteLine(ch.ToString().Equals(d));
或使用Convert.ToChar
Console.WriteLine(ch.Equals(Convert.ToChar(d)));
但如果您的字符串包含多个字符,则上述操作会失败。
编辑:
变量d是示例中的字符串,但实际上它可以是任何字符串 对象...
然后最好使用Convert.ToChar(object)
方法将对象转换为字符,然后比较相等性。
string d = "[";
char ch = '[';
object o = (object)d;
Console.WriteLine(ch.Equals(Convert.ToChar(o)));
如果object
无法转换为char
,则上述情况可能会引发异常,为安全起见,您可以使用char.TryParse
,如下所示:
string d = "[";
char ch = '[';
object obj = (object)d;
char temp;
bool result = obj != null &&
char.TryParse(obj.ToString(), out temp) &&
ch == temp; //same as ch.Equals(temp);
如果转换为字符不成功,则返回false。
答案 2 :(得分:0)
这取决于你的意图。这个
Console.WriteLine(ch.Equals(d[0]));
或
Console.WriteLine(ch.ToString().Equals(d));
如果d
可以是任何对象(就像您添加的那样),您也可以尝试使用d.ToString()
。但是将char
与滑块进行比较有什么意义呢?根据对象的实际类型,比较可能会意外变为True。
答案 3 :(得分:0)
更一般地说:
char ch = '[';
string d = "[";
bool areEqual = (d != null) && (d.Length == 1) && (d[0].Equals(ch));
假设您在比较null或“[XXX”与'['。
时不希望它为真。