如何让foreach循环跳过列表中的某些项?
- 内容介绍
- 文章标签
- 相关推荐
本文共计447个文字,预计阅读时间需要2分钟。
我有简单的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块,看看是否有任何事情发生).
查看数据库日志,看看那里有什么有趣的东西.
另外,请发布该方法的完整来源.
本文共计447个文字,预计阅读时间需要2分钟。
我有简单的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块,看看是否有任何事情发生).
查看数据库日志,看看那里有什么有趣的东西.
另外,请发布该方法的完整来源.

