2012-09-03 218 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]))); 
相關問題