2009-04-07 18 views

risposta

84

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).

+3

+1 Sei molto veloce! :) –

+2

Tuttavia, potrebbe essere divertente - ArrayList eugh :) – annakata

+2

Che ne dite di "ArrayList [spit]" ;-p –

5

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.

12

È 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.

+0

+1 per spiegare * perché * per favorire l'elenco '. – Lernkurve

4

Utilizzare Elenco dove possibile. Non riesco a vedere alcun uso di ArrayList quando esiste una lista ad alte prestazioni.

0

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.

3

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à.

0

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

0

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à.