この問題は私を困惑させました。ループで共有している変数があり、それが増加していません。
問題の変数は elrObject.currentLocation です。これをインクリメントするには、XML 要素が空の場合とそうでない場合の 2 つの方法があります。
コードは次のとおりです。
if (reader.Name == "Cell")
{
if (reader.IsEmptyElement)
{
Response.Write("i ran<br>");
elrObject.currentLocation++;
}
else
{
while (reader.Read())
{
if (reader.IsStartElement())
{
//labels
if (elrObject.currentLocation >= elrObject.index && elrObject.currentLocation <= elrObject.index + elrObject.colSpan)
Response.Write("i ran again<br>");
Response.Write(elrObject.currentLocation + "<br>");
elrObject.currentLocation++;
}
if (reader.Name == "Cell")
break;
}
}
}
私が得ている出力は次のとおりです:
0
1
2
3
5
番号 4 は、XML 要素が空で、一番上のループが実行される場合です。変数をインクリメントしていますが、番号 4 は表示されず、完全にスキップされて 5 になります。以下も実行されるため、上のループが下のループの前に適切に実行されていると確信しています。
私は走った
私は再び走った
これは、上のループが下のループの前に実行されていることを確認します....しかし、番号4はそれ自体をスキップしています! これについて何か助けていただければ幸いです。