C# 为什么我的比较失败了?

C# 为什么我的比较失败了?,c#,C#,上面的代码工作得很好,但当我想限制它并将其更改为以下内容时: if (dgv.Rows.Count.ToString() == "2") if(dgv.Rows.Count.ToString()不能在字符串上使用大于。请尝试: if (dgv.Rows.Count.ToString() <= "2") if(dgv.Rows.Count您正在比较字符串而不是所有数值 在第二个if语句中要比较的是:“2”我假设.Count返回一个数字,所以我希望代码是 if (dgv.Rows.C

上面的代码工作得很好,但当我想限制它并将其更改为以下内容时:

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

if(dgv.Rows.Count.ToString()不能在字符串上使用大于。请尝试:

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

if(dgv.Rows.Count您正在比较字符串而不是所有数值


在第二个if语句中要比较的是:“2”我假设
.Count
返回一个数字,所以我希望代码是

if (dgv.Rows.Count <= 2) 
if(dgv.Rows.Count==2)
如果(dgv.Rows.Count这个“2”是一个字符串。因此,它只是比较值是否相等。因此,第一个有效


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

似乎您误解了问题。在比较值时,您根本不应该执行
对字符串的比较:您比较的是
字符串
s,而不是实际数字(
Int
)。此外,您不能执行
您的问题与WPF或Datagrid无关,只是简单的c#。我对其进行了相应的编辑。当您实际尝试将值解释为整数时,将其作为字符串进行比较通常不会产生您所想的结果。查找“自然排序顺序”以了解原因。感谢Roel,我感谢您的修订
if (dgv.Rows.Count <= 2) 
if (dgv.Rows.Count == 2) 
if (dgv.Rows.Count <= 2) 
if (dgv.Rows.Count <= 2)