我有一个相当简单的任务,我想做但发生了一些奇怪的事情。我只想检查字符串中的元素是否等于零,然后相应地设置一个整数。这是我的代码if (ssRow[(bar_position_row - 3)].Equals("0") && ssRow[(bar_position_row + 1)].Equals("0")) { back_row = 2; front_row = 2; }else if (!ssRow[(bar_position_row - 3)].Equals("0") && !ssRow[(bar_position_row + 1)].Equals("0")) { back_row = 3; front_row = 1; }else if (ssRow[(bar_position_row - 3)].Equals("0") && !ssRow[(bar_position_row + 1)].Equals("0")) { back_row = 2; front_row = 1; }当我测试我的代码时,在几个示例中ssRow[(bar_position_row - 3)] and ssRow[(bar_position_row + 1)]等于零,但不知何故ssRow[(bar_position_row - 3)].Equals("0")和ssRow[(bar_position_row + 1)].Equals("0")都是假的。有谁知道我的错误是什么?
2 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
当你索引一个字符串时,你得到的是 a char,而不是 another string。然后,您将其char与string( "0")进行比较,并且可以理解地返回false。
您应该与'0'(a char)进行比较,而不是"0"(a string)。并且由于char是值类型,您可以只使用==相等运算符。如果您一开始就这样做了,这将是一个编译时错误。
见示例:
"abc"[0].Equals("a") //false
"abc"[0].Equals('a') //true
"abc"[0] == 'a' //true
"abc"[0] == "a" //compile-time error, can't compare char with string
弑天下
TA贡献1818条经验 获得超8个赞
我不知道 的类型ssRow
,如果对它使用索引访问没有返回一个string
,那么Equals("0")
就是在做对象相等。
要修复它,请考虑.ToString()
首先使用:ssRow[(bar_position_row - 3)].ToString().Equals("0")
- 2 回答
- 0 关注
- 259 浏览
添加回答
举报
0/150
提交
取消