0

我还有一个问题,我似乎在 Google 上找不到任何东西。

该程序的作用
该程序显示来自 RSS 提要的信息。

问题
如何将 Arraylist 中的所有项目加载到 TextBox?

我尝试过的事情
这是我到目前为止所拥有的:

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

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

问题
当我这样做时,文本框显示:

System.String[]System.String[]

代替:

CraftBukkit 的推荐构建:1.2.4-R1.0(构建 2126) http://dl.bukkit.org/downloads/craftbukkit/view/00993_1.2.4-R1.0/

有人知道这个数组是如何工作的吗?
我是否需要遍历数组并搜索特定索引?

对不起,但我对 C# 还是有点陌生​​,对不起我的英语我是荷兰人 :<。

4

5 回答 5

2

看起来您的 ArrayList 包含字符串数组而不是字符串。所以试试这个:

foreach (var item in list1.OfType<string[]>().SelectMany(i => i))
{
    textBox1.AppendText(item);
}
于 2012-04-04T08:53:26.663 回答
0

这似乎item是一个字符串数组,所以尝试内爆它:

foreach (var item in list1)
{
    textBox1.AppendText(string.Join("", item));
}
于 2012-04-04T08:52:44.307 回答
0

您的代码基本上是一个数组列表。这就是为什么它显示 system.string[]

将其更改为

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

它将加入您在 List<> 中的每个字符串 [] (即项目)并像这样创建它

第一个数组第一项,第一个数组第二项

和文本框为

firstarrayfirstitem,firstarrayseconditem,secondarrayfirstitem,secondarrayseconditem....等等。

于 2012-04-04T08:55:53.343 回答
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();
于 2012-04-04T09:15:38.013 回答
0

更好的方法:

textBox1.Text = string.Join("", list1.OfType<string[]>().SelectMany(i => i));
于 2012-04-04T13:18:25.097 回答