2012-04-04 63 views
0

我還有一個問題,我似乎無法在Google上找到任何內容。將數組列表載入文本框

這是什麼程序做
此程序會顯示來自RSS源的信息。

問題
如何從一個ArrayList中的所有項目加載到一個TextBox?

事情我已經試過
這是我到目前爲止有:

List<Array> list1 = new List<Array>(); 

foreach (var item in list1) 
     { 
      textBox1.AppendText(item.ToString()); 
     } 

問題
當我這樣做時,文本框顯示了這一點:

系統。 String [] System.String []

相反的:

爲CraftBukkit推薦體形:1.2.4-R1.0(建設2126) http://dl.bukkit.org/downloads/craftbukkit/view/00993_1.2.4-R1.0/

是否有人有任何想法如何這陣東西的工作?
我是否需要遍歷數組並搜索特定的索引?

對不起,但我對C#還是有點新,對不起我的英文我是荷蘭人:<。

+0

哦,是啊對不起,我這是怎麼定義列表:列出列表1 =新名單(); – 2012-04-04 08:51:20

+0

似乎項目類型是字符串[],所以你可以做的是'string.Join(',',item)' – mshsayem 2012-04-04 08:51:31

回答

2

看起來你ArrayList包含字符串,而不是字符串數組。所以試試這個:

foreach (var item in list1.OfType<string[]>().SelectMany(i => i)) 
{ 
    textBox1.AppendText(item); 
} 
+1

爲什麼.SelectMany(i => i)? – Cynede 2012-04-04 08:54:22

+0

@Manitra Andriamitondra這似乎工作完美:)!謝謝!編輯:我不能接受的答案呢,需要再等7分鐘):. – 2012-04-04 08:54:33

+0

SelectMany()將列表列表轉換爲扁平列表 – 2012-04-04 08:58:12

0

看來item是一個字符串數組,所以儘量爆吧:

foreach (var item in list1) 
{ 
    textBox1.AppendText(string.Join("", item)); 
} 
0

你的代碼基本上是一個數組列表。這就是爲什麼它顯示在列表< system.string []

將其更改爲

foreach (var item in list1) 
{ 
    textBox1.AppendText(string.Join("", item)); 
} 

它會加入你的每個字符串[](即項目)>和像

firstarrrayfirstitem創建它, firstarrayseconditem

和文本框作爲

firstarrrayfirstitem,firstarrayseconditem,secondarrayfirstitem,secondarrayseconditem .... 等等。

0

更好的方法是使用stringbuider來提高性能並減少文本框調用的propertychanged事件;

System.Text.StringBuilder sb = new System.Text.StringBuilder(); 

foreach (var item in list1.OfType<string[]>().SelectMany(i => i)) 
{ 
    sb.Append(item); 
} 

textBox1.Text = sb.ToString(); 
0

更好的辦法:

textBox1.Text = string.Join("", list1.OfType<string[]>().SelectMany(i => i));