2009-08-11 5 views
1

Was ist der Hauptunterschied zwischen den drei? Im Moment möchte ich ein Schlüssel/Wert-Paar erstellen, das sowohl string als auch string verwendet. Alle drei scheinen Optionen zu haben, die ich benutzen kann.Was ist der Unterschied zwischen System.Collections, System.Collections.Specialized und System.Collections.Generic in .NET?

Edit: Ich möchte nur eine einfache Hash-Tabelle erstellen - nichts wirklich Komplexes.

+1

Ich kann kaum glauben, dass dies eine echte Frage ist. Dies sind drei Namespaces. Offensichtlich ist der Unterschied die Namen in den Namensräumen! Ist das wirklich was du fragst? –

+0

Nur eine zufällige Notiz: System.Collections.Generic.List ist mit einem Array implementiert. –

Antwort

4

Die generischen Kollektionen ersetzen fast vollständig die Basis-Kollektionen und Collections.Specialized. Um wirklich die beste Empfehlung zu geben, müssen wir mehr darüber wissen, was Sie tun möchten, aber Odds sind Sie wollen System.Collections.Generic.Dictionary.

4
  • System.Collections: Behälter, die Verweise auf System.Object Typen speichern
  • System.Collections.Specialized: spezialisierte Versionen von System.Collections für andere Typen als System.Object (distinct Auflistungstypen pro Spezialisierung, die jeweils in der Montage gespeichert)
  • System.Collections.Generic: Ersatz für die über zwei als die Laufzeit wird bestimmen, wie die Sammlung für den Typ erstellt wird, der darin gespeichert werden soll (eine Sammlungsart für alle Spezialisierungen).
1

Die Antwort hängt stark von Ihrer Verwendung ab. Ohne Details zu kennen, würde ich sagen System.Collections.Specialized.NameValueCollection für String, String. System.Collections.Specialized & System.Collections.Generic sind stark typisiert, ich denke, System.Collections ist nur übrig von .NET 1.1.

+1

Wörterbuch > NameValueCollection –