c# - 变量在多个循环内不递增

标签 c# asp.net loops nested-loops

这个问题让我很困惑。我有一个在循环中共享的变量,它没有递增。

有问题的变量是 elrObject.currentLocation。有两种方法可以递增它 - 如果 XML 元素为空或不为空。

代码如下:

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 正在跳过自己!我真的很感激这方面的帮助。

最佳答案

不应该显示数字 4。您没有

Response.Write(elrObject.currentLocation + "<br>");

if (reader.IsEmptyElement)

阻止。

关于c# - 变量在多个循环内不递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14944430/

相关文章:

c# - 将两个 Dictionary<string, List<Model>> 类型的泛型组合成另一个相同类型的泛型

javascript - 如何根据每个 item.id 的 NUM_PHOTOS 增加 .jpg 前缀的数字?

javascript - imacros javascript多个for循环内循环过程提取数据

javascript - 在javascript中使用什么数据结构或迭代方法来获得循环列表行为

c# - 自托管 Nancy 实例中的嵌入式静态内容

c# - 如何使用 SelectSingleNode 获取属性值?

C# 在线程内调用异步方法

asp.net - .NET 中如何调用服务器端事件

asp.net - 点击回车时,文本框会聚焦在按钮上吗?

asp.net - 将 linq 查询结果转换为数据表 C#