Die Antwort lautet wie immer: " Es kommt darauf an ". Ich nehme an, von den Tags Sie sprechen über C #.
Am besten ist es, wenn Sie feststellen
- Eine Reihe von Daten
- Anforderungen an die Verwendung
und schreiben Sie einige Testfälle.
Es hängt auch davon ab, wie Sie die Liste sortieren (wenn sie überhaupt sortiert ist), welche Art von Vergleichen durchgeführt werden müssen, wie lange der Vorgang "Vergleichen" für das jeweilige Objekt in der Liste dauert, oder sogar davon, wie Sie die Sammlung verwenden wollen.
Im Allgemeinen hängt die Wahl nicht so sehr von der Größe der Daten ab, mit denen Sie arbeiten, sondern eher davon, wie Sie auf sie zugreifen wollen. Haben Sie jedes Datenelement mit einer bestimmten Zeichenkette oder anderen Daten verknüpft? Eine Hash-basierte Sammlung wäre wahrscheinlich das Beste. Ist die Reihenfolge der Daten, die Sie speichern, wichtig, oder müssen Sie auf alle Daten gleichzeitig zugreifen? Dann ist eine reguläre Liste vielleicht besser geeignet.
Zusätzlich:
Natürlich gehen meine obigen Ausführungen davon aus, dass "Leistung" Datenzugriff bedeutet. Noch etwas anderes ist zu bedenken: Wonach suchen Sie, wenn Sie "Leistung" sagen? Geht es um die Leistung bei der Suche nach einzelnen Werten? Geht es um die Verwaltung großer (10000, 100000 oder mehr) Wertesätze? Ist es die Leistung beim Füllen der Datenstruktur mit Daten? Das Entfernen von Daten? Zugriff auf einzelne Datenbits? Das Ersetzen von Werten? Iteration über die Werte? Speicherverbrauch? Geschwindigkeit beim Kopieren von Daten? Wenn Sie beispielsweise über einen String-Wert auf Daten zugreifen, Ihre Hauptanforderung an die Leistung aber eine minimale Speichernutzung ist, könnten Sie mit widersprüchlichen Designfragen konfrontiert sein.