2012-04-04 50 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));