Con l'elenco generico, è possibile Add
/Remove
ecc. A basso costo (almeno, all'estremità). Il ridimensionamento di un array (da aggiungere/rimuovere) è più costoso. Lo svantaggio evidente è che una lista ha una capacità inutilizzata, quindi forse spreca pochi byte - non vale la pena preoccuparsi nella maggior parte dei casi, tuttavia (e lo si può tagliare).
Generalmente, preferire gli elenchi a meno che non si sia a conoscere i dati non cambino mai le dimensioni.
API-wise, dal momento che LINQ c'è poco da scegliere tra di essi (ad esempio i metodi aggiuntivi su List<T>
sono in gran parte duplicati da LINQ, quindi gli array li ottengono gratuitamente).
Un altro vantaggio è che con una lista non è necessario esporre un setter:
private readonly List<Foo> items = new List<Foo>();
public List<Foo> Items { get { return items; } }
eliminando una serie di null
insetti, e che consente di mantenere il controllo dei dati (soprattutto se si utilizza un diversa implementazione IList<>
che supporta ispezione/convalida quando si modifica il contenuto).
fonte
2010-03-12 06:22:49
La classe risulta più pulita se si utilizzano le proprietà implementate automaticamente: stringa pubblica EmployeeName {get; impostato;}. Anche l'utilizzo di nomi completi come EmployeeName sarebbe di aiuto. Oh, e che ne pensi di alcuni tipi? :-) –