A switch case statement that returns a timespan
private const double yearMultiplier = 365.2425;

private Dictionary&lt;TimeUnit, Func&lt;double, TimeSpan&gt;&gt; timespanConverters = new Dictionary&lt;TimeUnit, Func&lt;double, TimeSpan&gt;&gt;
{
    { TimeUnit.Seconds, TimeSpan.FromSeconds },
    { TimeUnit.Minutes, TimeSpan.FromMinutes },
    { TimeUnit.Hours,   TimeSpan.FromHours },
    { TimeUnit.Days,    TimeSpan.FromDays },
    { TimeUnit.Months, t =&gt; TimeSpan.FromDays((int)t * (yearMultiplier / 12))) },
    { TimeUnit.Years,  t =&gt; TimeSpan.FromDays((int)t * yearMultiplier)) }
}

// ....

public TimeSpan ResetTimeSpan
{
    get
    {
        return timespanConverters[ResetTimeUnitEnumValue](ResetTime);
    }
}


Bit of a shame that System.TimeSpan doesn't have FromMonths or FromYears methods otherwise this would look really neat :)