如果表单不在集合中,则保留未命名的公司具有IFormsCollection.GetForms("ObjectIndex") || IFormsCollection.GetForms(0)
方法,该方法会抛出异常。它不是IEnumerable<form>
,需要for()
个循环或.GetEnumerator()
- &gt; while()
获取列表中的每个项目。
我的问题是我是否应该每次循环使用IForms集合?我需要找到一个大多数时间都不会在那里的表单,或者只是跳过循环并假设它是否抛出异常而不存在?为了便于搜索,我宁愿不维护一个IE IEnumerable的第二个集合。
答案 0 :(得分:4)
异常会导致性能下降。如果你愿意,你可以明显地循环,但是如果你从这个集合中构建一个字典,其中键是名称和值是表单,那么它会快得多。然后只需在字典中搜索关键字,那将会更快,没有异常
答案 1 :(得分:3)
不要故意抛出异常。它们不应用于正常控制流程。