public static IComparer <RightClickableElement> CompareBy(RightClickOptionOrder rightClickOptionOrder) { return(Comparer <RightClickableElement> .Create((r1, r2) => rightClickOptionOrder.Compare(r1.option, r2.option))); }
/// <summary> /// Convert the elements in this result to an ordered list of RightClickMenuItems, where order is /// defined by the specified rightClickOptionOrder /// </summary> /// <param name="rightClickOptionOrder"></param> /// <returns>ordered menu items</returns> public IEnumerable <RightClickMenuItem> AsOrderedMenus(RightClickOptionOrder rightClickOptionOrder) { elements.Sort(RightClickableElement.CompareBy(rightClickOptionOrder)); return(elements.Select(elem => elem.AsMenu())); }