public IReadOnlyList <Mode> GetWorkingModes() { var unique = Modes.Distinct().ToList(); if (!unique.Contains(Mode.All)) { return(unique .ToList()); } return(Enum.GetValues(typeof(Mode)) .Cast <Mode>() .Except(Enumerable.Repeat(Mode.All, 1)) .OrderBy(x => x.ToString()) .ToList()); }