我在显示存储的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
答案 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属性,并使用+ =运算符将新字符串附加到值,如上所述。