C # List para string com delimitador

Existe uma function em C # para converter rapidamente alguns coleção para string e separar valores com delimitador?

Por exemplo:

List names -> string names_together = "John, Anna, Monica"

Você pode usar String.Join . Se você tem uma List então você pode chamar ToArray primeiro:

 List names = new List() { "John", "Anna", "Monica" }; var result = String.Join(", ", names.ToArray()); 

No .NET 4, você não precisa mais do ToArray , pois há uma sobrecarga de String.Join que recebe um IEnumerable .

Você também pode fazer isso com linq se quiser

 var names = new List() { "John", "Anna", "Monica" }; var joinedNames = names.Aggregate((a, b) => a + ", " + b); 

Embora eu prefira a syntax não-linear na resposta do Quartermeister e acho que o Aggregate pode executar operações de concatenação de cadeia de caracteres mais lentas (provavelmente mais).

 List targets = new List(); var InboxChecked = true; var BannerChecked = false; var EmailChecked = true; if (InboxChecked) { targets.Add("Inbox"); } if (BannerChecked) { targets.Add("Banner"); } if (EmailChecked) { targets.Add("Email"); } var index = 0; if (targets.Any()) { var aggregate = targets.Aggregate((s1, s2) => { return ++index == targets.Count - 1 ? s1 + " and " + s2 : s1 + ", " + s2; }); // aggregate.Dump(); } // returns -> Inbox and Email