Enums polimórficos para manejo de estado.

¿Cómo manejo las enumeraciones sin usar el interruptor o si las declaraciones en C #?

Por ejemplo

enum Pricemethod
{
    Max,
    Min,
    Average
}

... y tengo un artículo de clase

 public class Article 
{
    private List<Double> _pricehistorie;

    public List<Double> 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();
            }

        }
    }

}

Quiero evitar la sentencia de cambio y hacerla genérica.

Para un Pricemethod específico, llame a un Cálculo específico y devuélvalo.

get { return CalculatedPrice(Pricemethod); }

Qué patrón se usa aquí y quizás alguien tenga una buena idea de implementación. Busqué ya por patrón de estado, pero no creo que este sea el correcto.

Respuestas a la pregunta(2)

Su respuesta a la pregunta