public struct Range { #region Fields private int i_Min; private int i_Max; #endregion #region Properties #region Properties public int Min { get { return this.i_Min; } set { this.i_Min = value; } } #endregion #region Properties public int Max { get { return this.i_Max; } set { this.i_Max = value; } } #endregion #endregion #region Constructors public Range(int min, int max) { this.i_Min = min; this.i_Max = max; } public Range(string range) { //AJ: Input checking goes here, maybe a regex pattern string[] numbers = range.Split(new char[] { '-' }, 2, StringSplitOptions.RemoveEmptyEntries); //AJ: TryParse can also be used if the input is potentially unclean this.i_Min = int.Parse(numbers[0]); this.i_Max = int.Parse(numbers[1]); } #endregion #region Methods #region Overrides #region ToString public override string ToString() { return string.Format("{0}-{1}", this.i_Min, this.i_Max); } #endregion #endregion #endregion }