2011-09-18 55 views
2

我正在嘗試遍歷字符串數組並將其全部呈現在單個消息框中。我在一分鐘的代碼是這樣的:對於數組中的所有項目的C#消息框

string[] array = {"item1", "item2", "item3"}; 
foreach(item in array) 
{ 
    MessageBox.Show(item); 
} 

這顯然帶來了一個消息對於每個項目,有沒有什麼辦法可以在循環外一個消息立刻告訴他們呢?如果可能,我將使用\ n分隔項目,謝謝。

回答

9

可以從陣列的各個串組合成一個字符串(例如與string.Join方法),然後顯示所串接的字符串:

string toDisplay = string.Join(Environment.NewLine, array); 
MessageBox.Show(toDisplay); 
5

可以只使用string.Join,使它們成一個字符串。不要使用\n,最好使用Environment.NewLine

string msg = string.Join(Environment.NewLine, array); 
0

嘗試使用這個..

using System.Threading; 



string[] array = {"item1", "item2", "item3"}; 


     foreach (var item in array) 
     { 

      new Thread(() => 
      { 
       MessageBox.Show(item); 
      }).Start(); 


     } 
+2

這不是他問的。即使是這樣,也不要這樣做 –

+0

這不僅不會顯示由\ n分隔的單個「MessageBox」中的項目,而且還顯示UI線程以外的線程上的UI。這通常是一個壞主意。 –

1

我會看到兩種常用的方法來做到這一點。

 // Short and right on target 
     string[] array = {"item1", "item2", "item3"}; 
     string output = string.Join("\n", array); 
     MessageBox.Show(output); 


     // For more extensibility.. 
     string output = string.Empty; 
     string[] array = { "item1", "item2", "item3" }; 
     foreach (var item in array) { 
      output += item + "\n"; 
     } 

     MessageBox.Show(output); 
相關問題