Digamos que você tenha um:
List<string> los = new List<string>();
Neste mundo funcional maluco que vivemos atualmente, qual seria o melhor para criar uma string concatenando:
String.Join(String.Empty, los.ToArray());
StringBuilder builder = new StringBuilder();
los.ForEach(s => builder.Append(s));
string disp = los.Aggregate<string>((a, b) => a + b);
foreach StringBuilder antigo simples ou
Ou há um modo melhor?
c#
string
performance
functional-programming
maxfridbe
fonte
fonte
Respostas:
Eu iria com a opção A:
Meu raciocínio é que o método Join foi escrito para esse fim. De fato, se você olhar para o Reflector, verá que o código não seguro foi usado para realmente otimizá-lo. Os outros dois também TRABALHAM, mas acho que a função Join foi escrita para esse fim e, eu acho, a mais eficiente. Eu poderia estar errado ...
Conforme @Nuri YILMAZ sem
.ToArray()
, mas este é o .NET 4+:fonte
Se você quiser concatenar as strings, use string.Concat () em vez de string.Join ().
fonte
Se você usa o .net 4.0, pode usar uma maneira classificadora:
fonte
String.Join () é implementado rapidamente, e como você já tem uma coleção das seqüências em questão, é provavelmente a melhor opção. Acima de tudo, grita "Estou entrando em uma lista de strings!" Sempre bom.
fonte
fonte
Meu voto é string.
Não há necessidade de avaliações lambda e funções temporárias a serem criadas, menos chamadas de função, menos empilhamento e popping de pilha.
fonte