enum case management - лучше использовать переключатель или словарь?

При обработке значений перечисления в каждом конкретном случае лучше использовать оператор switch или словарь?

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

Вот две реализации для сравнения:

Учитывая эти перечисления:

enum FruitType
{
    Other,
    Apple,
    Banana,
    Mango,
    Orange
}
enum SpanishFruitType
{
    Otra,
    Manzana, // Apple
    Naranja, // Orange
    Platano, // Banana
    Pitaya // Dragon fruit, only grown in Mexico and South American countries, lets say
    // let's say they don't have mangos, because I don't remember the word for it.
}

Вот способ сделать это с помощью оператора switch:

private static SpanishFruitType GetSpanishEquivalent(FruitType typeOfFruit)
{
    switch(typeOfFruit)
    {
        case FruitType.Apple:
            return SpanishFruitType.Manzana;
        case FruitType.Banana:
            return SpanishFruitType.Platano;
        case FruitType.Orange:
            return SpanishFruitType.Naranja;
        case FruitType.Mango:
        case FruitType.Other:
            return SpanishFruitType.Otra;
        default:
            throw new Exception("what kind of fruit is " + typeOfFruit + "?!");
    }
}

А вот как это делается с помощью словаря:

private static Dictionary EnglishToSpanishFruit = new Dictionary()
{
    {FruitType.Apple, SpanishFruitType.Manzana}
    ,{FruitType.Banana, SpanishFruitType.Platano}
    ,{FruitType.Mango, SpanishFruitType.Otra}
    ,{FruitType.Orange, SpanishFruitType.Naranja}
    ,{FruitType.Other, SpanishFruitType.Otra}
};
private static SpanishFruitType GetSpanishEquivalentWithDictionary(FruitType typeOfFruit)
{
    return EnglishToSpanishFruit[typeOfFruit]; // throws exception if it's not in the dictionary, which is fine.
}

Мало того, что словарь имеет повышение скорости, он также содержит меньше ненужных строк в коде. Всегда ли лучше использовать словарь? Есть ли третий способ лучше?

Заранее спасибо.

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

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