Antigua pregunta, pero me pareció útil. Resulta que también hay una clase especializada para un diccionario que usa una cadena tanto para la clave como para el valor:
private static readonly StringDictionary SegmentSyntaxErrorCodes = new StringDictionary
{
{ "1", "Unrecognized segment ID" },
{ "2", "Unexpected segment" }
};
Editar: según el comentario de Chris a continuación, generalmente se prefiere usar Dictionary<string, string>over, StringDictionarypero dependerá de su situación. Si está tratando con una base de código más antigua, es posible que esté limitado a StringDictionary. Además, tenga en cuenta que la siguiente línea:
myDict["foo"]
devolverá nulo si myDictes a StringDictionary, pero se lanzará una excepción en caso de Dictionary<string, string>. Consulte la publicación SO que mencionó para obtener más información, que es la fuente de esta edición.