Utilize List<T> no C# com capacidade inicial e tenha performance no .NET
Ao escolher a estrutura de dados List<T> no C#, utilize a capacidade inicial. Não é raro problemas de performance em aplicações .NET com C# pelo uso indiscriminado de lista genérica, List<T>, sem especificar a capacidade inicial.
Não utilizar List<T> com capacidade inicial sugere falta de conhecimento
Há uma razão para isso, muito programadores não utilizam a capacidade inicial por falta de conhecimento de como a estrutura de dados funciona. Dessa forma, explico o que acontece com o uso do List<T>.
Ao criarmos uma lista genérica sem a capacidade inicial ser especificada, quando adicionamos o primeiro elemento, automaticamente será criado mais outros , elementos vazios.
Se o limite é atingido, quando adiciono um quinto elemento um novo objeto será criado com oito posições e os valores serão automaticamente copiados para o novo array e a primeira lista descartada.
O motivo da baixa performance ao utilizar uma lista sem a capacidade determinada é o custo de criação do novo array, o custo da cópia da antiga lista para a nova e o descarte da lista antiga.
Determinar a capacidade inicial de um List<T> melhora em até 62% a performance de uma aplicação em .NET
Por fim, quando você termina a capacidade inicial de uma lista genérica, List<T>(capacity) você melhora em até 62% a performance de uma aplicação em .NET. O tempo gasto em criação, cópia e destruição é menor. Além disso, há uma redução, considerável na quantidade de memória alocada.
Conclusão
Se criarmos nossas listas utilizando a capacidade inicial, por ser algo simples, podemos otimizar a performance das aplicações em .NET e reduzir recursos computacionais.