C#中将ArrayList转换为MessageBox

3
我正想知道如何在消息框中打印整个ArrayList。以下是我目前的代码:

    ArrayList myData = new ArrayList();
    ...bunch of Strings added to myData...
    private void btnDisplayScores_Click(object sender, EventArgs e)
    {
        MessageBox.Show(myData); <-----what I need help with
    }

1
只是好奇,你是否_必须_使用ArrayList?通常强烈建议使用List<T>,除非你真的需要一个object类型的列表。 - John Alexiou
1个回答

8

您可以尝试将过时的ArrayList转换为IEnumerable<Object>,然后将项目Join在一起:

 MessageBox.Show(string.Join(Environment.NewLine, myData.OfType<Object>()));

更好的设计是将ArrayList更改为List<Object>(或者如果myData只需要String项,则为List<String>):
 List<Object> myData = new List<Object>();
 ...
 MessageBox.Show(string.Join(Environment.NewLine, myData));

2
如果OP想要将字符串用逗号分隔,则可以将Environment.NewLine替换为string.Join(",", myData);。这是一个很好的技巧,如果你需要构建逗号分隔输出时可以使用。提示提示。 - MethodMan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接