public int CompareFieldValueTo(FieldIndex field, Solution other) { switch (field) { case FieldIndex.TimeAtUni: return(TimeAtUni.CompareTo(other.TimeAtUni)); case FieldIndex.TimeInClasses: return(TimeInClasses.CompareTo(other.TimeInClasses)); case FieldIndex.TimeInBreaks: return(TimeInBreaks.CompareTo(other.TimeInBreaks)); case FieldIndex.Days: return(Days.CompareTo(other.Days)); case FieldIndex.MinDayLength: return(MinDayLength.CompareTo(other.MinDayLength)); case FieldIndex.MaxDayLength: return(MaxDayLength.CompareTo(other.MaxDayLength)); case FieldIndex.AverageDayLength: return(AverageDayLength.CompareTo(other.AverageDayLength)); case FieldIndex.ShortBreak: return(ShortBreak.CompareTo(other.ShortBreak)); case FieldIndex.LongBreak: return(LongBreak.CompareTo(other.LongBreak)); case FieldIndex.AverageBreak: return(AverageBreak.CompareTo(other.AverageBreak)); case FieldIndex.NumberBreaks: return(NumberBreaks.CompareTo(other.NumberBreaks)); case FieldIndex.ShortBlock: return(ShortBlock.CompareTo(other.ShortBlock)); case FieldIndex.LongBlock: return(LongBlock.CompareTo(other.LongBlock)); case FieldIndex.AverageBlock: return(AverageBlock.CompareTo(other.AverageBlock)); case FieldIndex.NumberBlocks: return(NumberBlocks.CompareTo(other.NumberBlocks)); case FieldIndex.EarlyStart: return(EarlyStart.CompareTo(other.EarlyStart)); case FieldIndex.LateStart: return(LateStart.CompareTo(other.LateStart)); case FieldIndex.AverageStart: return(AverageStart.CompareTo(other.AverageStart)); case FieldIndex.EarlyEnd: return(EarlyEnd.CompareTo(other.EarlyEnd)); case FieldIndex.LateEnd: return(LateEnd.CompareTo(other.LateEnd)); case FieldIndex.AverageEnd: return(AverageEnd.CompareTo(other.AverageEnd)); default: return(0); } }