web-dev-qa-db-ja.com

C#<文字列>を区切り文字付き文字列にリストする

いくつかのコレクションをすばやく文字列に変換し、値を区切り文字で区切るためのC#の関数はありますか。

例えば:

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

495
nan

String.Join を使用できます。 List<string>がある場合は、最初に ToArray を呼び出すことができます。

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

.NET 4ではString.Joinを取るIEnumerable<string>のオーバーロードがあるのでToArrayはもう必要ありません。

941
Quartermeister

あなたが望むなら、あなたはまたlinqでこれをすることができます

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

私はQuartermeisterの答えでは非linq構文を好んでいますが、Aggregateは遅くなるかもしれません(おそらくより多くの文字列連結操作)。

71
Bob