在多行TextBox中显示ArrayList条目

时间:2011-10-26 22:16:01

标签: c# constructor foreach arraylist

我在显示存储的ArrayList()中的内容时出现问题:

private void btnEnter_Click(object sender, EventArgs e)
{
    public ArrayList books = new ArrayList();
    books = new ArrayList();

    // first I am just using lebels for easier input.
    books.Add(new Book(label1.Text, label2.Text, label3.Text, label4.Text, float.Parse(label5.Text)));
}

我们看到我正在使用构造函数来存储包含5个元素的数据。问题是我不确定如何使用foreach循环显示数据:

public ArrayList books;
public BookList()
{
    InitializeComponent();

    foreach (string data in books)
        txtBookList.Text = data.ToString();
}

我正在尝试在多行文本框中显示内容,但我不确定我做错了什么。有什么提示吗?

以下是Book()构造函数的代码:

public Book(string title, string firstName, string lastName, string publisherName, float price)
: base(title, publisherName, price)
{
    this.authorFirstName = firstName;
    this.authorLastName = lastName;
} 

- 编辑 - 有人指出我确实希望将ArrayList显示为对象。我该怎么做?

的问候。

HelpNeeder

2 个答案:

答案 0 :(得分:1)

如果是Windows Forms,请查看TextBox.Lines属性。这应该会让你在文本框中显示多行。

答案 1 :(得分:1)

这里有几个问题 - 主要是你的ArrayList书籍不是字符串的集合,它是书籍对象的集合。因此,你的foreach循环需要迭代book对象而不是字符串:

    foreach (Book b in books)
    {
        txtBookList.Text += b.authorFirstName;
        txtBookLIst.Text += b.authorLastName;
    }

第二个问题是你正在尝试为txtBookList变量分配一个字符串值,我假设它是一个文本框。请尝试使用Text属性,并使用+ =运算符将新字符串附加到值,如上所述。