una truncar reemplazar recortar quitar longitud extraer ejemplos caracteres cadena c# string performance functional-programming

truncar - string[] c# ejemplos



Lista de cadenas para una cadena (6)

Digamos que tienes un:

List<string> los = new List<string>();

En este mundo funcional tan loco en el que vivimos actualmente, uno de estos sería el mejor para crear una secuencia al concatenar estos:

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);

o Plain old StringBuilder foreach

¿O hay un mejor camino?


Me gustaría ir con la opción A:

String.Join(String.Empty, los.ToArray());

Mi razonamiento es porque el método Join se escribió para ese propósito. De hecho, si miras Reflector, verás que se usó un código inseguro para optimizarlo realmente. Los otros dos también FUNCIONAN, pero creo que la función Unirme fue escrita para este propósito, y supongo que la más eficiente. Aunque podría estar equivocado ...

Según @Nuri YILMAZ sin .ToArray() , pero esto es .NET 4+:

String.Join(String.Empty, los);


Mi voto es string.Join

No es necesario crear evaluaciones lambda y funciones temporales, menos llamadas a funciones, menos empuje de pila y reventado.


Si usa .net 4.0 puede usar una forma de clasificador:

String.Join<string>(String.Empty, los);


String.Join () se implementa bastante rápido, y como ya tiene una colección de las cadenas en cuestión, es probablemente la mejor opción. Sobre todo, grita "¡Me estoy uniendo a una lista de cuerdas!" Siempre guay.


los.Aggregate((current, next) => current + "," + next);


string.Concat(los.ToArray());

Si solo desea concatenar las cadenas, utilice string.Concat () en lugar de string.Join ().