2012-09-03 146 views
4

可能重复:
What's the best string concatenation method using C#?C#添加字符串到另一个字符串

我有一个变量:

string variable1; 

我试图做这样的事情:

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

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

+0

[string concatenation](http://msdn.microsoft.com/en-us/library/ms228504.aspx) – Habib

回答

10

只需使用+操作:

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(); 
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

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

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

有添加一个字符串,字符串的各种方法。你可以使用一个简单的+函数,这在大多数情况下不被推荐。 string.concat和string.format是添加字符串的首选方法。也StringBuilder类是有用的添加字符串的大部分在一起

0

您需要使用+在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])); 
     } 
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])));