Gibt es in C # eine Funktion zum schnellen Konvertieren einer Sammlung in Zeichenfolgen und zum Trennen von Werten mit Trennzeichen?
Zum Beispiel:
List<string> names
-> string names_together = "John, Anna, Monica"
Sie können verwenden String.Join
. Wenn Sie eine haben List<string>
, können Sie ToArray
zuerst anrufen :
List<string> names = new List<string>() { "John", "Anna", "Monica" };
var result = String.Join(", ", names.ToArray());
In .NET 4 brauchen Sie das nicht ToArray
mehr, da es eine Überlastung gibt String.Join
, die ein IEnumerable<string>
.
Ergebnisse:
John, Anna, Monica
Sie können dies auch mit linq tun, wenn Sie möchten
var names = new List<string>() { "John", "Anna", "Monica" };
var joinedNames = names.Aggregate((a, b) => a + ", " + b);
Obwohl ich die Nicht-Linq-Syntax in Quartermeisters Antwort bevorzuge und denke, dass sie Aggregate
möglicherweise langsamer ausgeführt wird (wahrscheinlich mehr Verkettungsoperationen für Zeichenfolgen).
Aggregate
ist besser für Operationen vom Typ Mathe. Bei Zeichenfolgen ähnelt diese Operation demfor each
Anhängen und Anhängen an eine Zeichenfolge, die sehr langsam und ineffizient ist, da Sie für jedes in der Liste vorhandene Element eine neue Zeichenfolge erstellen.