【问题标题】:Display ArrayList entries in multiline TextBox在多行文本框中显示 ArrayList 条目
【发布时间】:2011-12-16 02:42:53
【问题描述】:

我在显示这样存储的 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 显示为对象。我该怎么做?

问候。

求助者

【问题讨论】:

  • 是的。我正在尝试在多行文本框中显示它。
  • 除非您使用 .NET 1.1 进行编程,否则您永远不应使用 ArrayList。如果您的列表包含所有相同类型的项目,那么您应该使用List<itemType>,例如List<string>
  • 商品类型不同,价格浮动。我被要求创建一个 ArrayList。

标签: c# constructor foreach arraylist


【解决方案1】:

您在这里有几个问题 - 主要问题是您的 ArrayList 书籍不是字符串的集合,而是书籍对象的集合。因此,您的 foreach 循环需要遍历书籍对象而不是字符串:

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

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

【讨论】:

  • 嗯,这个问题是书中没有arraylist。在那里我只存储单个条目。我确实想从数组中提取数据。
  • 正如有人指出的答案与您的相同,我必须接受这个作为答案。谢谢你。我遇到的问题是我实际上没有输入任何内容,我必须在开始输出 arraylist 条目之前对其进行更正。
【解决方案2】:

如果这是针对 Windows 窗体的,请查看 TextBox.Lines 属性。这应该可以让您在文本框中显示多行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    相关资源
    最近更新 更多