2014-03-13 88 views
2
if (dgv.Rows.Count.ToString() == "2") 

上面的代码可以正常使用,但是当我想给它限制,并将其更改为以下内容:为什么我的比较失败?

if (dgv.Rows.Count.ToString() <= "2") 

这是行不通的。我究竟做错了什么?

+0

你的问题与WPF或Datagrid无关,只是普通的c#。我相应地编辑了它。 – RoelF

+0

作为一个字符串进行比较时,如果实际尝试将值解释为整数通常不会产生您的想法。查找“自然排序”来理解为什么。 –

+0

谢谢罗尔,我很感谢你的修改 –

回答

1

你不能使用大于字符串。尝试:

if (dgv.Rows.Count <= 2) 
1

您比较字符串,而不是acctuall数值

if语句是这样的,你想在你的第二个比较是:“2” < =“2”

你应该做的是:2 < = 2

这样的:

if (dgv.Rows.Count <= 2) 
2

我认为.Count返回一个数字,所以我期望的代码是

if (dgv.Rows.Count == 2) 
if (dgv.Rows.Count <= 2) 
2

这个“2”是一个字符串。所以,它只是比较价值是否相等。因此,第一个工作。

对于第二种情况,它不知道如何进行比较。您必须将此“2”转换为Int,然后进行比较。

2

看来你是误解了这个问题。在比较值时,您根本不应该执行Tostring:您正在比较string s,而不是实际数字(int)。另外,您不能对字符串执行<=操作。

更新您的代码以

if (dgv.Rows.Count <= 2) 

,所有应该不错。