回答:
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string.Join("", test);
var separator = ", ";
string.Join(separator , test);
string.Join(string.Empty, test)
ではなくを使用することをお勧めしますempty-paranthesis
。
メソッドの前述の使用を使用するよりも少し速いオプションJoin()
は、Concat()メソッドです。空のデリミタパラメータは必要ありませんJoin()
。例:
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = String.Concat(test);
したがって、おそらく高速です。
Concat
より良いです。の内部コードではJoin
、各項目の後にセパレータを追加します。しかしConcat
、そのようなコードはありませんJoin
。それは、よりも単純で直接的です。これが一番の答えです。
試してください:
String.Join("", test);
2つの要素を結合する文字列を返す必要があります。""
文字列をセパレータなしで結合することを示します。
"Hello "
質問の元の文字列にはすでに末尾のスペースがありました。スペースがまだない場合は、それで間違いありません" "
。区切り文字として使用する方が理にかなっています。
単純なstring.Concat()が必要です。
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = string.Concat(test);
セパレーター(スペース、コンマなど)も追加する必要がある場合は、string.Join()を使用する必要があります。
string[] test = new string[2];
test[0] = "Red";
test[1] = "Blue";
string result = string.Join(",", test);
これを実行する必要がある場合は、string.Join()よりも要素の数が多い文字列配列を実行する必要があります。セパレーターとして ""(空白)引数を指定するだけです。StringBuilderはパフォーマンスのためにも使用できますが、コードが少し長くなります。
Concat
そしてJoin
より速くよりもStringBuilder
、あなたが連結する4つの以下の文字列を持っている場合。
Aggregate
同じに使用することもできます。
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string joinedString = test.Aggregate((prev, current) => prev + " " + current);
String.Join
複数の余分な文字列が作成されるため、これは実装するのに非常に無駄な方法です。の適切なバリアントについては、stackoverflow.com / questions / 217805 /…を参照してくださいAggregate
。
string ConvertStringArrayToString(string[] array)
{
//
// Concatenate all the elements into a StringBuilder.
//
StringBuilder strinbuilder = new StringBuilder();
foreach (string value in array)
{
strinbuilder.Append(value);
strinbuilder.Append(' ');
}
return strinbuilder.ToString();
}
string.Join(" ", array)
です(ただし、末尾にスペースが追加されている場合を除く)。ライブラリにあるものを使用しないのはなぜですか?
受け入れられた回答では、String.Joinはその使用法ごとのベストプラクティスではありません。OPが最初の項目 "Hello"に(ヌル区切り文字を使用する代わりに)末尾のスペースを含めたため、String.Concatを使用する必要がありました。
ただし、OPが「Hello World!」という結果を要求したため、String.Joinは依然として適切なメソッドですが、末尾の空白を区切り文字に移動する必要があります。
// string[] test = new string[2];
// test[0] = "Hello ";
// test[1] = "World!";
string[] test = { "Hello", "World" }; // Alternative array creation syntax
string result = String.Join(" ", test);