Verwenden von Listen-Arrays - Best Practices

7

Ich habe eine c # -Newbie-Frage. Was wird unter den beiden unten auch als gute Praxis angesehen? ... und ist Liste langsamer oder schneller als das Array?

%Vor%     
GuruMeditation 02.12.2010, 16:37
quelle

4 Antworten

5

Letzteres wird als Best Practice für Sammlungen mit variabler Größe angesehen.

Abhängig davon, welche Art von Sammlung Sie verwenden, wird die Framework-Klasse intern etwas tun, was Sie im ersten Beispiel tun (außer dass Sie die Größe nicht um ein Element erhöhen, sondern um eine größere Größe erhöhen) zusätzlicher Pufferspeicher, um Elemente hinzuzufügen.)

Aber im Allgemeinen wollen Sie das Rad nicht neu erfinden. Das Framework bietet eine Vielzahl von Collection-Klassen mit variabler Größe. Benutze sie anstatt deine eigenen zu schreiben.

    
Justin Niessner 02.12.2010, 16:38
quelle
11

Verwenden Sie Listen, wenn Sie eine Sammlung benötigen, die vergrößert oder verkleinert werden kann.

Verwenden Sie Arrays, wenn Sie die Länge kennen und nicht ändern wollen.

Sie können Auflistungsinitialisierer verwenden, um eine Liste zu initialisieren, damit Sie eine ähnliche Syntax wie beim Initialisieren erhalten ein Array:

%Vor%     
dtb 02.12.2010 16:39
quelle
3

Eine Liste verwendet intern ein Array, so dass ich die gleiche Leistung erwarten würde.

Es ist viel schwieriger, Fehler bei der Programmierung mit Listen zu machen als bei rohen Arrays, daher würde ich die meiste Zeit die Listen bevorzugen.

    
Tim Robinson 02.12.2010 16:39
quelle
0

Beide werden als IEnumerables verarbeitet, sodass Sie ähnliche Vorgänge für beide durchführen können. Der Vorteil der Liste ist, wie Justin Niessner sagte, variable Größen. Die Größenänderung eines Arrays würde außerdem erfordern, dass das Framework Speicher neu zuordnet, während sich die Liste als eine verknüpfte Liste verhält und nur Elemente aus der Sammlung hinzufügt oder entfernt.

    
CodeMonkey1313 02.12.2010 16:40
quelle

Tags und Links