Avec le générique de la liste, vous pouvez l' Add
/ Remove
etc à bon marché (au moins, jusqu'à la fin). Le redimensionnement d'un tableau (ajouter/supprimer) est plus cher. L'inconvénient évident est que une liste a la capacité de réserve, alors peut-être perdre un peu d'octets - pas la peine de s'inquiéter à propos de dans la plupart des cas, bien que (et vous pouvez le découper).
En général, préfèrent les listes, sauf si vous savez que vos données ne soient pas des changements de taille.
API-sage, depuis LINQ il y a peu de choix (c'est à dire les méthodes supplémentaires sur List<T>
sont en grande partie reprises par LINQ, de sorte que les tableaux de les obtenir gratuitement).
Un autre avantage est qu'avec une liste, vous n'avez pas besoin d'exposer un setter:
private readonly List<Foo> items = new List<Foo>();
public List<Foo> Items { get { return items; } }
l'élimination de toute une gamme d' null
bugs, et vous permettant de garder le contrôle sur les données (en particulier si vous utilisez un autre IList<>
mise en œuvre qui prend en charge l'inspection / validation lors de la modification du contenu).