public static List <AccessMode> AsList(this AccessMode mode) { // return all elements that contain flags in mode except AccessMode.None AccessMode[] modes = (AccessMode[])Enum.GetValues(typeof(AccessMode)); List <AccessMode> exceptList = new List <AccessMode>() { AccessMode.None }; return(modes.ToList() .Except(exceptList) .Where(x => mode.HasMode(x)) .ToList()); }