IGPIGP, все, что говорит этот код, что в вашей реализации размер строк имеет значение. Строки в C# - это не нуль-терминантные строки плюсов, а больше похожи на строки из паскаледельфей. Не вдаваясь в детали, сравнить строки можно за O(1) амортизированное. Причем длина строки значения не имеет. Поэтому не думаю, что для свитча длина внезапно стала иметь значение
Еще раз, для закрепления (в последний раз

)
размер statement'а - это количество statement'ов, которые в него входят. Например
C++ |
1
2
3
4
5
| if (foo)
while(bar)
{
//здесь 1000 строк
} |
|
размер if - 1 statement, несмотря на то, что в while может быть что угодно размером в мегабайты.
смысл в том, что Dictionary - это такая хэш-таблица для пар ключ-значение. И для небольшого количества statement'ов есть смысл сделать просто if else, для большого количества элементов будет производится поиск нужной ветви по хэш-таблице, создавать которую для небольшого числа элементов дорогое удоволсьтвие, а каждый элемент хэш-таблицы - это адрес нужной ветви switch'а, на который не влияет размер строки, таким образом ,получаем второе независимое подтверждение, что длина тут не при чем