¿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 ToArrayprimero:
List<string> names = new List<string>() { "John", "Anna", "Monica" };
var result = String.Join(", ", names.ToArray());
En .NET 4 ya no necesita ToArraymás, ya que hay una sobrecarga de String.Joineso 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 Aggregatepodría funcionar más lentamente (probablemente más operaciones de concatenación de cadenas).
Aggregatees mejor para las operaciones de tipo matemático. Con las cadenas, esta operación es similar afor eaching 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.