サーチ…


備考

あなたが動的な文字列を作成している場合、それはのために選ぶことをお勧めしStringBuilder +または使用して、クラスではなく、参加する文字列Concat各+ /のような方法をConcatそれが実行され、新たな文字列オブジェクトを毎回作成されますが。

+演算子

string s1 = "string1";
string s2 = "string2";

string s3 = s1 + s2; // "string1string2"

System.Text.StringBuilderを使用して文字列を連結する

StringBuilderを使用して文字列を連結すると、 +を使用した単純な文字列連結よりもパフォーマンス上の利点が得られます。これはメモリの割り当て方法によるものです。ストリングは各連結で再割当てされ、現在のブロックが使い尽くされたときにのみ再割り当てされるように、StringBuildersはブロック内でメモリーを割り当てます。これは、小さな連結の多くを行うときに大きな違いを作ることができます。

StringBuilder sb = new StringBuilder();
for (int i = 1; i <= 5; i++)
{
    sb.Append(i);
    sb.Append(" ");
}
Console.WriteLine(sb.ToString()); // "1 2 3 4 5 "

Append()への呼び出しは、 StringBuilderへの参照を返すため、デイジーチェーンにすることができます:

StringBuilder sb = new StringBuilder();
sb.Append("some string ")
  .Append("another string");

String.Joinを使用したConcat文字列配列要素

String.Joinメソッドは、文字列配列から複数の要素を連結するために使用できます。

string[] value = {"apple", "orange", "grape", "pear"};
string separator = ", ";

string result = String.Join(separator, value, 1, 2);
Console.WriteLine(result);

次の出力を生成します。 "orange、grape"

この例では、セパレータと値の先頭に開始インデックスとカウントを指定するString.Join(String, String[], Int32, Int32)オーバーロードを使用します。

startIndexとcountのオーバーロードを使用しない場合は、指定されたすべての文字列に参加できます。このような:

string[] value = {"apple", "orange", "grape", "pear"};
string separator = ", ";
string result = String.Join(separator, value);
Console.WriteLine(result);

それは生産する;

リンゴ、オレンジ、ブドウ、梨

$を使用した2つの文字列の連結

$は、複数の文字列を連結するための簡単で簡潔なメソッドを提供します。

var str1 = "text1";
var str2 = " ";
var str3 = "text3";
string result2 = $"{str1}{str2}{str3}"; //"text1 text3"


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow