捕获异常与循环收集(不那么愚蠢的方式)

时间:2013-09-12 15:04:21

标签: c# exception sap enumerable

如果表单不在集合中,则保留未命名的公司具有IFormsCollection.GetForms("ObjectIndex") || IFormsCollection.GetForms(0)方法,该方法会抛出异常。它不是IEnumerable<form>,需要for()个循环或.GetEnumerator() - &gt; while()获取列表中的每个项目。

我的问题是我是否应该每次循环使用IForms集合?我需要找到一个大多数时间都不会在那里的表单,或者只是跳过循环并假设它是否抛出异常而不存在?为了便于搜索,我宁愿不维护一个IE IEnumerable的第二个集合。

2 个答案:

答案 0 :(得分:4)

异常会导致性能下降。如果你愿意,你可以明显地循环,但是如果你从这个集合中构建一个字典,其中键是名称和值是表单,那么它会快得多。然后只需在字典中搜索关键字,那将会更快,没有异常

答案 1 :(得分:3)

不要故意抛出异常。它们不应用于正常控制流程。