最短优化,执行代码以检查当前菜单项是否在列表中最后

本文关键字:是否 菜单项 列表 最后 检查 优化 执行 代码 | 更新日期: 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此解决方案假设列表中始终存在元素