Come dice il titolo quando dovrei usare List
e quando dovrei usare ArrayList
?C# Quando dovrei usare List e quando dovrei usare l'arraylist?
Grazie
Come dice il titolo quando dovrei usare List
e quando dovrei usare ArrayList
?C# Quando dovrei usare List e quando dovrei usare l'arraylist?
Grazie
Il momento principale di usare ArrayList
è in .NET 1.1
Oltre a questo, List<T>
tutta la strada (per il vostro locale T
) ...
Per quelli (rari) Nei casi in cui non si conosce il tipo in anticipo (e non è possibile utilizzare i generici), anche List<object>
è più utile di ArrayList
(IMO).
Poiché List è una classe generica, tenderei a utilizzare sempre List.
ArrayList è una classe .NET 1.x (valida comunque & valida), ma non è "digitato"/generico, quindi sarà necessario eseguire il cast degli elementi da "oggetto" al tipo desiderato; mentre quando usi List, non devi farlo.
È consigliabile utilizzare sempre List<TypeOfChoice>
(introdotto in .NET 2.0 con generici) poiché è TypeSafe e più veloce di ArrayList
(nessun boxing/unboxing non necessario).
Solo caso potrei pensare a dove può essere utile un ArrayList se hai bisogno di interfacciarti con cose vecchie (.NET 1.1) o hai bisogno di una serie di oggetti di diverso tipo e carichi tutto come oggetto - ma tu potrebbe fare il secondo con List<Object>
che è generalmente migliore.
+1 per spiegare * perché * per favorire l'elenco
Utilizzare Elenco dove possibile. Non riesco a vedere alcun uso di ArrayList quando esiste una lista ad alte prestazioni.
Come già detto. Dovresti usare l'Elenco generico, quasi sempre quando conosci il tipo (C# è un linguaggio tipizzato forte), e altri modi quando fai lezioni polimorfiche/di eredità o altre cose del genere.
ArrayList è una struttura di dati .NET precedente. Se si utilizza .NET 2.0 o versioni successive, utilizzare sempre Elenco quando l'array deve contenere elementi dello stesso tipo. L'utilizzo di List su ArrayList migliora sia le prestazioni che l'usabilità.
Se non si desidera utilizzare Query Linq, non è necessario utilizzare Elenco. Se si desidera utilizzare, è necessario preferire Elenco.
Generics è stato introdotto in .Net 2.0. Se si utilizzano versioni precedenti di .Net, è possibile utilizzare l'elenco di array altrimenti si può andare con l'Elenco generico stesso. L'elenco delle matrici è deprecato e non fornirà una sicurezza di tipo migliore e creerà anche problemi di boxing e unboxing. Ma l'Elenco generico non lo farà.
+1 Sei molto veloce! :) –
Tuttavia, potrebbe essere divertente - ArrayList eugh :) – annakata
Che ne dite di "ArrayList [spit]" ;-p –