Лучше использовать HashTable или switch case

Я не уверен, какой из них лучше. Мне нужно проанализировать каждый символ входной строки и получить заменяющую строку для символа. Для некоторых объектов разрешены все буквенно-цифровые символы, поэтому использование параметра switch / case приведет к большому количеству кода и уменьшит удобочитаемость и удобство обслуживания, но я могу использовать статический метод. Использование HashTable также требует много кода

Используя статический метод:

 private static string EncodeChar(char c)
    {
        var symbols = string.Empty;

        switch (c)
        {
            case '0':
                symbols = "Test";
                break;
            case '1':
                symbols = "Hello";
                break;
            [...]
        }

        symbols;
    }

Использование HashTable:

private static Hashtable table = CreateTable();

private static Hashtable CreateTable()
{
    var table = new HashTable();
    table.Add('0',"Test");
    table.Add('1', "Hello");
    [...]
    return table;
}

private static string EncodeChar(char c)
{
    return table.ContainsKey(c) ? table[c].ToString() : string.Empty;
}

Метод кодирования:

public void Encode()
{
    string output = string.Empty;

    for (int i = 1; i < Data.Length; i++)
    {
        output = string.Concat(output, EncodeChar(Data[i]));
    }

    EncodedData = output;
}

Каковы преимущества / недостатки в отношении производительности и распределения памяти?

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

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