我在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处的单元格。如果该值等于此数组中的值,我将一些数据读入,项目[custAcctNo-],我会执行以下操作。
我正在调试代码,然而,我在Watch窗口中注意到,[custAcctNo-1]项与dr.Cells [AcctNoIndex-]相同。对于其中一行,值是相同的。但是,当我单步执行调试器时,程序将跳过if块中的所有内容,然后继续。
任何人都可以帮我吗?我认为既然两个值都是字符串,那么条件应该是真的,并且程序应该在if块中继续,但我很困惑为什么调试器认为这两个值不相同。
答案 0 :(得分:1)
一个说字符串,一个是对象。将它们都投射到字符串上就可以了。