Erstellen einer kommagetrennten Liste aus IList oder IEnumerable
Was ist der sauberste Weg, um eine kommagetrennte Liste von String-Werten aus einer IList<string>
oder IEnumerable<string>
zu erstellen?
String.Join(...)
arbeitet mit einem string[]
und kann daher umständlich sein, wenn Typen wie IList<string>
oder IEnumerable<string>
nicht einfach in ein String-Array umgewandelt werden können.
800
3
.NET 4+
Detail & Pre .Net 4.0 Lösungen
IEnumerable
kann mit LINQ (.NET 3.5) sehr einfach in ein String-Array umgewandelt werden:Es ist einfach genug, die entsprechende Hilfsmethode zu schreiben, wenn Sie es brauchen:
Dann rufen Sie sie wie folgt auf:
Sie können dann
string.Join
aufrufen. Natürlich müssen Sie nicht eine Hilfsmethode verwenden:Letzteres ist allerdings ein ziemlicher Brocken :)
Dies ist wahrscheinlich der einfachste Weg, es zu tun, und auch ziemlich performant - es gibt andere Fragen darüber, wie genau die Leistung ist, einschließlich (aber nicht beschränkt auf) diese.
Seit .NET 4.0 gibt es mehr Überladungen in
string.Join
, so dass man eigentlich nur schreiben kann:Viel einfacher :)
können Sie die IList mit ToArray in ein Array konvertieren und dann einen string.join-Befehl für das Array ausführen.
Sie können
.ToArray()
fürLists
undIEnumerables
verwenden und dannString.Join()
wie gewünscht einsetzen.