Старый вопрос, но я нашел это полезным. Оказывается, есть также специализированный класс для словаря, использующий строку как для ключа, так и для значения:
private static readonly StringDictionary SegmentSyntaxErrorCodes = new StringDictionary
{
{ "1", "Unrecognized segment ID" },
{ "2", "Unexpected segment" }
};
Изменить: Согласно приведенному ниже комментарию Криса, использование Dictionary<string, string>over StringDictionaryобычно предпочтительно, но будет зависеть от вашей ситуации. Если вы имеете дело со старой базой кода, вы можете ограничиться расширением StringDictionary. Также обратите внимание, что следующая строка:
myDict["foo"]
вернет null, если myDictэто a StringDictionary, но в случае Dictionary<string, string>. См. Сообщение SO, которое он упомянул, для получения дополнительной информации, которая является источником этого редактирования.