NameValueCollection vs Dictionary <string, string> [duplicado]

Possível duplicado:
IDictionary <string, string> ou NameValueCollection

Algum motivo para usar o Dictionary <string, string> em vez de NameValueCollection?

(em C # / .NET Framework)

Opção 1, usando NameValueCollection:

//enter values:
NameValueCollection nvc = new NameValueCollection()
{
  {"key1", "value1"},
  {"key2", "value2"},
  {"key3", "value3"}
};

// retrieve values:
foreach(string key in nvc.AllKeys)
{
  string value = nvc[key];
  // do something
}

Opção 2, usando o Dicionário <string, string> ...

//enter values:
Dictionary<string, string> dict = new Dictionary<string, string>()
{
  {"key1", "value1"},
  {"key2", "value2"},
  {"key3", "value3"}
};

// retrieve values:
foreach (KeyValuePair<string, string> kvp in dict)
{
  string key = kvp.Key;
  string val = kvp.Value;
  // do something
}

Para esses casos de uso, existe alguma vantagem em usar um contra o outro? Alguma diferença de desempenho, uso de memória, ordem de classificação etc.?

questionAnswers(3)

yourAnswerToTheQuestion