最短优化,执行代码以检查当前菜单项是否在列表中最后
本文关键字:是否 菜单项 列表 最后 检查 优化 执行 代码 | 更新日期: 2023-09-27 18:24:05
在一个用菜单项加载进行递归加载的asp.net菜单中(按100的顺序),我可以写哪些代码来检查当前菜单项是否是项目列表中的最后一个。我提出了这个想法,但我想改进它,只有当他们能够解释他们的代码是如何优化和执行的时候,我才会将代码标记为答案。
if (childMenuItems.Parent.ChildItems.IndexOf(childMenuItem) == childMenuItems.Parent.ChildItems.Count -1)
输入
childMenuItem是MenuItem
的实例,它存在于Menu
类中
if (childMenuItems.Parent.ChildItems[childMenuItems.Parent.ChildItems.Count-1] == childMenuItem)
在我看来,这是优化的,因为你做的是一个直数组索引,它比做IndexOf
便宜。IndexOf
是昂贵的,因为它从列表的开头开始并且相等性将每个元素与childMenuItem
进行比较。
在这个解决方案中,只有一个相等性检查,这是最昂贵的部分。
UPDATE此解决方案假设列表中始终存在元素