Die Antwort lautet wie immer: " Es kommt darauf an ". Ich gehe von den Tags aus, von denen Sie sprechen, C #.
Ihre beste Wette ist zu bestimmen
- Ein Datensatz
- Nutzungsanforderungen
und schreibe einige Testfälle.
Dies hängt auch davon ab, wie Sie die Liste sortieren (falls überhaupt sortiert), welche Art von Vergleichen durchgeführt werden müssen, wie lange der Vorgang "Vergleichen" für das bestimmte Objekt in der Liste dauert oder sogar, wie Sie die Liste verwenden möchten Sammlung.
Im Allgemeinen hängt die beste Auswahl nicht so sehr von der Größe der Daten ab, mit denen Sie arbeiten, sondern vielmehr davon, wie Sie darauf zugreifen möchten. Haben Sie jedes Datenelement mit einer bestimmten Zeichenfolge oder anderen Daten verknüpft? Eine Hash-basierte Sammlung wäre wahrscheinlich am besten. Ist die Reihenfolge der Daten, die Sie speichern, wichtig, oder müssen Sie gleichzeitig auf alle Daten zugreifen? Eine reguläre Liste kann dann besser sein.
Zusätzlich:
In meinen obigen Kommentaren wird natürlich davon ausgegangen, dass "Leistung" Datenzugriff bedeutet. Noch etwas zu beachten: Wonach suchen Sie, wenn Sie "Leistung" sagen? Ist Leistung individueller Wert nachschlagen? Ist es die Verwaltung großer (10000, 100000 oder mehr) Wertesätze? Ist es die Leistung, die Datenstruktur mit Daten zu füllen? Daten entfernen? Zugriff auf einzelne Datenbits? Werte ersetzen? Über die Werte iterieren? Speichernutzung? Datenkopiergeschwindigkeit? Wenn Sie beispielsweise über einen Zeichenfolgenwert auf Daten zugreifen, Ihre Hauptleistungsanforderung jedoch eine minimale Speichernutzung ist, können widersprüchliche Entwurfsprobleme auftreten.