1

我在 C# winforms 应用程序中有一个 datagridview,我将每行中某个单元格中的值与我从文件中读取的数组中的一个项目进行比较。

 foreach (DataGridViewRow dr in dataGridView2.Rows)
                {
                    if (dr.Cells[AcctNoIndex-1].Value == items[custAcctNo-1])//row in datagridview that contains the customer account number
                    {
                        items[custState-1] = dr.Cells[ShipStateIndex-1].Value.ToString();
                        items[custCountry-1] = dr.Cells[ShipCountryIndex-1].Value.ToString();
                        items[custShipState-1] = dr.Cells[ShipStateIndex-1].Value.ToString();
                        items[custShipCountry-1] = dr.Cells[ShipCountryIndex-1].Value.ToString();
                    }

                }

因此,对于 datagridview 中的每一行 dr,我查看 AcctNoIndex-1 处的单元格。如果该值等于该数组中的值,我将一些数据读入 items[custAcctNo-],我将执行以下操作。

然而,我正在调试代码,并在 Watch 窗口中注意到 items[custAcctNo-1] 与 dr.Cells[AcctNoIndex-] 相同。对于其中一行,值是相同的。但是,当我单步调试调试器时,程序会跳过 if 块中的所有内容并继续。

我的调试输出

谁能帮我这个?我认为由于两个值都是字符串,因此条件应该为真,并且程序应该在 if 块中继续,但我对调试器为什么认为这两个值不一样感到困惑。

4

1 回答 1

1

一个说字符串,一个是对象。将它们都转换为字符串,它会起作用。

于 2012-12-18T21:43:36.143 回答