Est-il un impact sur les performances lors de l'appel de ToList()?

Lors de l'utilisation de ToList(), est-il un impact sur la performance qui doit être pris en compte?

J'ai écrit une requête pour extraire les fichiers d'un répertoire, qui est la requête:

string[] imageArray = Directory.GetFiles(directory);

Cependant, depuis que je aime travailler avec List<> au lieu de cela, j'ai décidé de mettre en...

List<string> imageList = Directory.GetFiles(directory).ToList();

Donc, est-il une sorte d'impact sur les performances qui devraient être considérés au moment de décider de faire une conversion comme celle - ci, ou seulement à considérer lorsque vous traitez avec un grand nombre de fichiers? Est-ce un négligeable de conversion?

  • +1 intéressée de connaître la réponse aussi. À mon humble avis, à moins que l'application est critique pour les performances, je pense que j'ai toujours utiliser un List<T> en faveur d'une T[] si elle rend le code plus logique/lisible et maintenable (sauf bien sûr si la conversion était causant ainsi des problèmes de performances dans ce cas, je l'avais re-visite, je suppose).
  • Création d'une liste à partir d'un tableau doit être super bon.
  • Je ne spécifiez le type de données aussi précises que j'ai besoin de faire un travail. Si je n'ai pas à appeler Add ou Remove, je laisserais comme IEnumerable<T> (ou encore mieux var)
  • Je pense que, dans ce cas, il est préférable d'appeler EnumerateFiles au lieu de GetFiles, donc un seul tableau sera créé.
  • Si vous avez beaucoup de fichiers dans le répertoire de voir cette réponse stackoverflow.com/questions/7865159/...
  • GetFiles(directory), comme il est mis en œuvre .NET actuellement, à peu près n' new List<string>(EnumerateFiles(directory)).ToArray(). Donc GetFiles(directory).ToList() crée une liste, crée un tableau à partir de ce, crée ensuite une liste de nouveau. Comme 2kay dit, vous devriez être en préférant EnumerateFiles(directory).ToList() ici.

InformationsquelleAutor Cody | 2013-03-20