Domanda c # Quando dovrei usare List e quando dovrei usare l'arraylist?


Come dice il titolo quando dovrei usare List e quando dovrei usare ArrayList?

Grazie


44
2018-04-07 12:31


origine


risposte:


Il tempo principale da usare ArrayList è in .NET 1.1

Oltre a quello, List<T> fino in fondo (per il tuo locale T) ...

Per quei (rari) casi in cui non si conosce il tipo in anticipo (e non si possono usare i generici), anche List<object> è più utile di ArrayList (IMO).


84
2018-04-07 12:32



Dovresti sempre usare List<TypeOfChoice> (introdotto in .NET 2.0 con generici) poiché è TypeSafe e più veloce di ArrayList (nessun boxing / unboxing non necessario).

Solo il caso in cui potrei pensare a una ArrayList potrebbe essere utile 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 potresti fare quest'ultima con List<Object> che è generalmente migliore.


12
2018-04-07 12:35



Poiché List è una classe generica, tenderei a utilizzare sempre List.

ArrayList è una classe .NET 1.x (ancora disponibile e valida sebbene), ma non è "tipizzata" / generica, quindi dovrai lanciare gli elementi da "oggetto" al tipo desiderato; mentre quando usi List, non devi farlo.


5
2018-04-07 12:33



Usa Elenco dove mai possibile. Non riesco a vedere alcun utilizzo di ArrayList quando esiste una lista ad alte prestazioni.


4
2018-04-07 12:36



ArrayList è una vecchia struttura dati .NET. 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à.


3
2018-04-07 12:40



Come altri hanno 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.


0
2018-04-07 12:40



Se non si desidera utilizzare Query Linq, non è necessario utilizzare Elenco. Se si desidera utilizzare, è necessario preferire Elenco.


0
2017-12-12 07:30



Generics è stato introdotto in .Net 2.0. Se si utilizzano versioni precedenti di .Net, è possibile utilizzare l'elenco di array altrimenti possiamo utilizzare la lista generica stessa. 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à.


0
2018-04-04 03:23