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-]、次のことを行います。
しかし、コードをデバッグしていて、[ウォッチ] ウィンドウで、items[custAcctNo-1] が dr.Cells[AcctNoIndex-] と同じであることに気付きました。行の 1 つで、値が同じです。ただし、デバッガーをステップ実行すると、プログラムは if ブロック内のすべてをスキップして続行します。
誰でもこれで私を助けることができますか?両方の値が文字列であるため、条件は真である必要があり、プログラムは if ブロックで続行する必要があると思いますが、デバッガーが 2 つの値が同じではないと考える理由について混乱しています。