C#将字符串添加到另一个字符串

时间:2012-09-03 11:41:46

标签: c#

  

可能重复:
  What's the best string concatenation method using C#?

我有一个变量:

string variable1;

我正试图做这样的事情:

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

IntToHex是一个字符串函数,因此“IntToHex(buffer [i])”的结果将是字符串。但它出现了一个错误,说我不能使用&amp;&amp;。有没有解决方案将字符串添加到另一个字符串?谢谢!

7 个答案:

答案 0 :(得分:13)

只需使用+运算符:

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

您还需要初始化variable1

string variable1 = string.Empty;

string variable1 = null;

但请考虑使用StringBuilder,因为它效率更高:

StringBuilder builtString = new StringBuilder();

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

string variable1 = builtString.ToString();

答案 1 :(得分:4)

在C#中,只需使用+来连接字符串:

  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或更多的循环,这确实在性能上有很大的不同。

答案 2 :(得分: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();

答案 3 :(得分:2)

variable1 += IntToHex(buffer[i]);

答案 4 :(得分:2)

&&conditional-AND operator

可以使用+运算符进行字符串连接,但在循环(details)中使用它不是一个好主意。

使用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])));

答案 5 :(得分:1)

有多种方法可以将字符串添加到字符串中。你可以使用一个简单的+功能,在大多数情况下不推荐使用。 string.concat和string.format是添加字符串的首选方法。 stringBuilder类也可用于将大部分字符串添加到一起

答案 6 :(得分: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]));
        }