private static IEnumerable<PopupHorizontalAlignment> GetHorizontalAlignmentsInOrderOfPreference(PopupHorizontalAlignment preferredHorizontalAlignment) { var startIndex = horizontalAlignments.IndexOf(preferredHorizontalAlignment); var index = startIndex; do { yield return horizontalAlignments[index]; ++index; if (index == horizontalAlignments.Count) { index = 0; } } while (index != startIndex); }