Полиморфные Перечисления для обработки состояний

Как я могу обрабатывать Enums без использования switch или if операторов в C #?

Например

enum Pricemethod
{
    Max,
    Min,
    Average
}

... и у меня есть статья класса

 public class Article 
{
    private List _pricehistorie;

    public List Pricehistorie
    {
        get { return _pricehistorie; }
        set { _pricehistorie = value; }
    }

    public Pricemethod Pricemethod { get; set; }

    public double Price
    {
        get {
            switch (Pricemethod)
            {
                case Pricemethod.Average: return Average();
                case Pricemethod.Max: return Max();
                case Pricemethod.Min: return Min();
            }

        }
    }

}

Я хочу избежать заявления переключателя и сделать его общим.

Для получения конкретного метода определения цены вызовите конкретный расчет и верните его.

get { return CalculatedPrice(Pricemethod); }

Какой шаблон использовать здесь, и, возможно, у кого-то есть хорошая идея реализации. Искал уже шаблон состояния, но я не думаю, что это правильный.

Ответы на вопрос(2)

Ваш ответ на вопрос