StringDictionary
は、.NET 1.1から来ているとIEnumerable
Dictionary<string, string>
.NET 2.0から来ているとIDictionary<TKey, TValue>,IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable
IGNORECASEのみStringDictionary
Dictionary<string, string>
にキーに設定されて実装してLINQ
のために良いですが実装します
Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary.Add("ITEM-1", "VALUE-1");
var item1 = dictionary["item-1"]; // throws KeyNotFoundException
var itemEmpty = dictionary["item-9"]; // throws KeyNotFoundException
StringDictionary stringDictionary = new StringDictionary();
stringDictionary.Add("ITEM-1", "VALUE-1");
var item1String = stringDictionary["item-1"]; //return "VALUE-1"
var itemEmptystring = stringDictionary["item-9"]; //return null
bool isKey = stringDictionary.ContainsValue("VALUE-1"); //return true
bool isValue = stringDictionary.ContainsValue("value-1"); //return false
2つのパフォーマンスに違いはありますか? – thecoop
あなたの特別な状況の方が優れているかどうかを判断するには、ベンチマークを行う必要があります。パフォーマンスの違いが目立つとは思っていません。すべての新しいコードに 'Dictionary'を使うことをお勧めします(1.1をターゲットにする必要がない限り)。 –
@thecoop私の側から提示するハードデータはありませんでしたが、スピードをテストしたときに 'StringDictionary'が悪化しました(ほとんどすべて問題ありませんでした)。実際、正直言って、以前は、 'StringDictionary'は、' string'がキーであったときの高速化のための特別なコレクションであり、私のテストで悪化したときの私の大きな驚きには、それはノンネリックであることを学ぶために – nawfal