2014-03-13 110 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) 

,所有應該不錯。