static int ActionSetComparision(HMActionSet x, HMActionSet y) { bool xBuiltIn = x.IsBuiltIn(); bool yBuiltIn = y.IsBuiltIn(); // If comparing a built-in and a user-defined, the built-in is ranked first. if (xBuiltIn != yBuiltIn) { return(xBuiltIn.CompareTo(yBuiltIn)); } // If comparing two built-ins, we follow a standard ranking if (xBuiltIn && yBuiltIn) { return(x.CompareWitBuiltIn(y)); } // If comparing two user-defines, sort by localized name. return(x.Name.CompareTo(y.Name)); }