Самый короткий оптимизированный, выполняющий код, чтобы проверить, является ли текущий пункт меню последним в списке - PullRequest
0 голосов
/ 10 февраля 2012

В меню asp.net, которое выполняет рекурсию с множеством пунктов меню (порядка 100), какой код будет наиболее эффективным, который я могу написать, чтобы проверить, является ли текущий элемент меню последним в списке элементов,Я придумал это, но я хотел бы улучшить это, я бы помечал код как ответ только тогда, когда они могут объяснить, как они оптимизируют и выполняют свой код.childMenuItem является экземпляром MenuItem, который присутствует в Menu классе

1 Ответ

1 голос
/ 10 февраля 2012
if (childMenuItems.Parent.ChildItems[childMenuItems.Parent.ChildItems.Count-1] == childMenuItem)

По моему мнению, это оптимизировано, потому что вы делаете прямой индекс массива, который дешевле, чем IndexOf. IndexOf стоит дорого, потому что он начинается в начале списка, и равенство сравнивает каждый элемент с childMenuItem.

В этом решении есть только одна проверка равенства, которая является самой дорогой частью.

ОБНОВЛЕНИЕ В этом решении предполагается, что в списке всегда есть элементы

...