文字列配列を単一の文字列に変換したいと思います。
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
「Hello World!」のようなものが欲しいです。
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string.Join("", test);
Join()
メソッドの前述の使用を使用するよりも少しfasterオプションは Concat() メソッドです。 Join()
のように空の区切り文字パラメーターは必要ありません。例:
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = String.Concat(test);
したがって、おそらくより高速です。
試してください:
String.Join("", test);
2つの要素を結合する文字列を返す必要があります。 ""
は、文字列を区切り文字なしで結合することを示します。
シンプルな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()よりも要素の背後にある文字列配列で実行する必要がある場合、performaceの観点からはより良いです。セパレータとして ""(空白)引数を指定するだけです。 StringBuilderはパフォーマンスのためにも使用できますが、コードが少し長くなります。
Aggregate
も同様に使用できます。
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string joinedString = test.Aggregate((prev, current) => prev + " " + current);
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はその使用法ごとのベストプラクティスではありません。 OPは最初の項目に末尾のスペースを含んでいるため、String.Concatを使用する必要があります: "Hello"(ヌル区切り文字を使用する代わりに)。
ただし、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);
この方法を使用して、プロジェクトを高速化しました。
RichTextBox rcbCatalyst = new RichTextBox()
{
Lines = arrayString
};
string text = rcbCatalyst.Text;
rcbCatalyst.Dispose();
return text;
RichTextBox.Textは、配列を自動的に複数行の文字列に変換します!