Existe uma função no C # para converter rapidamente alguma coleção em string e separar valores com delimitador?
Por exemplo:
List<string> names
-> string names_together = "John, Anna, Monica"
Você pode usar String.Join
. Se você tiver um List<string>
, pode ligar ToArray
primeiro:
List<string> names = new List<string>() { "John", "Anna", "Monica" };
var result = String.Join(", ", names.ToArray());
No .NET 4, você não precisa ToArray
mais, pois há uma sobrecarga String.Join
disso IEnumerable<string>
.
Resultados:
John, Anna, Monica
Você também pode fazer isso com o linq, se desejar
var names = new List<string>() { "John", "Anna", "Monica" };
var joinedNames = names.Aggregate((a, b) => a + ", " + b);
Embora eu prefira a sintaxe não-linq na resposta do Quartermeister e acho que Aggregate
pode executar mais devagar (provavelmente mais operações de concatenação de cadeias).
Aggregate
é melhor para operações do tipo Math. Com strings, esta operação é semelhante afor each
ing e apenas é anexada a uma string que é muito lenta em ineficiente, porque você está criando uma nova string para cada item que existe na lista.