public static ISet <TEnum> Range <TEnum>(TEnum from, TEnum to) where TEnum : PolymorphicEnum <int, TEnum>, new() { return(new HashSet <TEnum>( PolymorphicEnum <int, TEnum> .GetValues() .Where(e => e.Ordinal >= from.Ordinal && e.Ordinal <= to.Ordinal))); }
public int CompareTo(object target) { PolymorphicEnum <T, TEnum> typedTarget = target as PolymorphicEnum <T, TEnum>; if (typedTarget == null) { throw new ArgumentException("Comparison can only occur between compatible enums.", "target"); } return(this.Ordinal.CompareTo(typedTarget.Ordinal)); }