Stare pytanie, ale uznałem to za przydatne. Okazuje się, że istnieje również wyspecjalizowana klasa dla Dictionary, która używa ciągu znaków zarówno dla klucza, jak i wartości:
private static readonly StringDictionary SegmentSyntaxErrorCodes = new StringDictionary
{
{ "1", "Unrecognized segment ID" },
{ "2", "Unexpected segment" }
};
Edycja: Zgodnie z komentarzem Chrisa poniżej, używanie Dictionary<string, string>
over StringDictionary
jest generalnie preferowane, ale zależy od twojej sytuacji. Jeśli masz do czynienia ze starszą bazą kodu, możesz być ograniczony do StringDictionary
. Zwróć również uwagę, że następujący wiersz:
myDict["foo"]
zwróci wartość null, jeśli myDict
jest a StringDictionary
, ale zostanie zgłoszony wyjątek w przypadku Dictionary<string, string>
. Zobacz wpis SO, o którym wspomniał, aby uzyskać więcej informacji, który jest źródłem tej zmiany.