9

重複
の可能性: C# を使用した最適な文字列連結方法は何ですか?

私は変数を持っています:

string variable1;

そして、私はこのようなものを作ろうとしています:

for (int i = 0; i < 299; i += 2)
        {
            variable1 = variable1 && IntToHex(buffer[i]);
        }

IntToHex は文字列関数なので、「IntToHex(buffer[i])」の結果は文字列になります。しかし、 && を使用できないというエラーが表示されます。文字列を別の文字列に追加する解決策はありますか? ありがとう!

4

7 に答える 7

14

+演算子を使用するだけです:

variable1 = variable1 + IntToHex(buffer[i]);

また、初期化する必要がありますvariable1:

string variable1 = string.Empty;

また

string variable1 = null;

ただし、StringBuilderより効率的なため、代わりに a を使用することを検討してください。

StringBuilder builtString = new StringBuilder();

for (int i = 0; i < 299; i += 2)
{
    builtString.Append(IntToHex(buffer[i]));
}

string variable1 = builtString.ToString();
于 2012-09-03T11:43:20.787 に答える
4

C# では、単純に a を使用し+て文字列を連結します。

  variable1 = variable1 + IntToHex(buffer[i]);

しかし、もっと重要なことは、この種の状況には StringBuilder が必要であることです。

    var buffer = new StringBuilder();
    for (int i = 0; i < 299; i += 2)
    {
        buffer.Append( IntToHex(buffer[i]) );
    }

    string variable1 = buffer.ToString();

100 以上のループの場合、これはパフォーマンスに大きな違いをもたらします。

于 2012-09-03T11:43:17.760 に答える
3

&&条件付き AND 演算子です。

文字列の連結に演算子を使用できますが、ループ(詳細)内で使用することはお勧めできません。+

次のいずれかを使用しますStringBuilder

StringBuilder builder = new StringBuilder(299 * 4); // Or whatever
for (int i = 0; i < 299; i += 2)
{
    builder.Append(IntToHex(buffer[i]));
}
string combined = builder.ToString();

または、使用する可能性がありますstring.Join-ループを考えると、この場合は実用的ではないかもしれませんが、他の場合は素晴らしいでしょう。次のように、ここでも使用できます。

string combined = string.Join("", Enumerable.Range(0, 149)
                                       .Select(i => IntToHex(buffer[i * 2])));
于 2012-09-03T11:46:08.743 に答える
2
variable1 = variable1 + IntToHex(buffer[i]);

ただし、これはおそらく優れています。

var sb = new StringBuilder();
for (int i = 0; i < 299; i += 2)
    {
        sb.Append(IntToHex(buffer[i]));
    }
variable1 = sb.ToString();
于 2012-09-03T11:43:10.663 に答える
2
variable1 += IntToHex(buffer[i]);
于 2012-09-03T11:43:48.110 に答える
1

文字列に文字列を追加するには、さまざまな方法があります。ほとんどの場合推奨されない単純な + 関数を使用できます。string.concat と string.format は、文字列を追加するための推奨される方法です。また、stringBuilder クラスは、文字列の大部分を一緒に追加するのに役立ちます

于 2012-09-03T11:44:42.627 に答える
1

+C#で文字列を連結するために使用する必要があります

for (int i = 0; i < 299; i += 2)
{
   variable1 = variable1 + IntToHex(buffer[i]);
}

しかし、ここでは StringBuilder が良い選択肢です...

StringBuilder sb = new StringBuilder("");

for (int i = 0; i < 299; i += 2)
{
   sb= sb.Append(IntToHex(buffer[i]));
}
于 2012-09-03T11:45:05.123 に答える