加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

foreach循环不循环遍历列表中的所有项 – C#

发布时间:2020-12-16 01:32:26 所属栏目:百科 来源:网络整理
导读:我有一个基本的foreach循环,它调用静态方法,该方法建立与数据库的连接并插入一些数据.出于某种原因,当我在没有调试的情况下运行应用程序时,它只会迭代集合中的第一项.如果我调试应用程序并在foreach循环上设置断点,它将遍历集合中的所有项目. 如果我设置一个
我有一个基本的foreach循环,它调用静态方法,该方法建立与数据库的连接并插入一些数据.出于某种原因,当我在没有调试的情况下运行应用程序时,它只会迭代集合中的第一项.如果我调试应用程序并在foreach循环上设置断点,它将遍历集合中的所有项目.

如果我设置一个断点并跨越foreach循环,它将演示与我在没有调试的情况下运行应用程序时相同的行为.

有谁知道会导致这种行为的原因是什么?

这是源代码的简化版本:

List<MyObject> objectlist = new List<MyObject>();

//some code to populate list

foreach(MyObject myobject in objectlist)
{
    string a = "a";
    string b = "b";

    MyLibrary.UpdateDatabase(a,b);
}

(我使用的是Visual Studio 2008 SP1)

更新

无论是否调试应用程序,该过程都不会抛出任何异常.

解决方法

我的猜测是,当您通过单步执行每个行时,您的代码可能会有不同的行为. (据推测是因为数据库)

确保该方法没有抛出任何异常(放置一个调用Console.WriteLine或MessageBox.Show的catch块,看看是否有任何事情发生).

查看数据库日志,看看那里有什么有趣的东西.

另外,请发布该方法的完整来源.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读