¿Hay una función en C # para convertir rápidamente alguna colección a cadena y separar valores con delimitador?
Por ejemplo:
List<string> names
-> string names_together = "John, Anna, Monica"
Puedes usar String.Join
. Si tiene un List<string>
teléfono, puede llamar ToArray
primero:
List<string> names = new List<string>() { "John", "Anna", "Monica" };
var result = String.Join(", ", names.ToArray());
En .NET 4 ya no necesita ToArray
más, ya que hay una sobrecarga de String.Join
eso toma un IEnumerable<string>
.
Resultados:
John, Anna, Monica
También puedes hacer esto con linq si quieres
var names = new List<string>() { "John", "Anna", "Monica" };
var joinedNames = names.Aggregate((a, b) => a + ", " + b);
Aunque prefiero la sintaxis no linq en la respuesta de Quartermeister y creo que Aggregate
podría funcionar más lentamente (probablemente más operaciones de concatenación de cadenas).
Aggregate
es mejor para las operaciones de tipo matemático. Con las cadenas, esta operación es similar afor each
ing y solo se agrega a una cadena que es muy lenta e ineficiente porque está creando una nueva cadena para cada elemento que existe en la lista.