Ho una classe che contiene alcuni tipi di base. (3x float, 2x int).C# Array o Elenco per un tipo di classe singola
Ora ho bisogno di una raccolta che possa contenere diverse milioni di istanze di questa classe. Non ho bisogno di tipi derivati. Tutti gli elementi sono esattamente da questa singola classe. Ancora più il numero di elementi è fisso. In casi molto rari ho intenzione di copiare l'intera lista/matrice e modificare la copia. La lista/matrice originaria deve essere immutabile, quindi non ho bisogno di sincronizzarmi con altri thread.
Ora la domanda sono:
- sono i vantaggi da un array invece di una lista?
- È possibile salvare la memoria utilizzando una matrice?
- E la velocità?
Ho letto che un elenco in C# è implementato internamente come matrice.
Se fosse C++, so che l'array potrebbe contenere l'oggetto completo. Ma non sono sicuro di come C# gestisca questo. Un array C# manterrà solo riferimenti alle istanze di classe o conserverà la struttura dati completa?
In .NET entrambi gli array e le liste contengono riferimenti –
Penso che troverete alcune risposte [qui] (http://stackoverflow.com/questions/434761/array-versus-listt-when-to-use-which) – szpic
Per quanto riguarda le domande su memoria e velocità, le hai confrontate tu stesso? – rhughes