私は、NameValueCollectionまたはIDictionaryのいずれかを使用できるシナリオがあります。しかし、どちらがパフォーマンスに優れているかを知りたい。IDictionary <string、string>またはNameValueCollection
- NameValueCollectionの
NameValueCollection options()
{
NameValueCollection nc = new NameValueCollection();
nc = ....; //populate nc here
if(sorting)
//sort NameValueCollection nc here
return nc;
}
を使用する - これらのコレクション型のIDictionary
IDictionary<string, string> options()
{
Dictionary<string, string> optionDictionary = new Dictionary<string, string>();
optionDictionary = ....; //populate
if(sorting)
return new SortedDictionary<string, string>(optionDictionary);
else
return optionDictionary;
}
NameValueCollectionは、キーごとに複数の値(クエリ文字列などに必要)もサポートしています。 –
namevaluecollectionに関するこのmsdnの記事によると:http://msdn.microsoft.com/en-us/library/system.collections.specialized.namevaluecollection.aspx "この種類のコレクションは要素の順序を保持しません。コレクションを列挙するときに特定の順序が保証されます。 – kateroh