使用类中的列表填充列表框

时间:2012-12-05 21:12:08

标签: c# list class listbox

我正在尝试转换并输入List memeber。输入通过Class接收,附加到字符串值,然后应添加到列表中。但是,我不能让列表工作。

 public class Deliveries
{
    private string customername;

    public string CustName
    {
        get { return customername; }
        set { customername = value; }
    }
    private string customeraddress;

    public string CustAddress
    {
        get { return customeraddress; }
        set { customeraddress = value; }
    }
    public DateTime deliverytime;

    public DateTime DelTime
    {
        get { return deliverytime; }
        set { deliverytime = value; }
    }
    public string output;
    private void ToString()
    {
        output=deliverytime.ToString() + " " + CustName + " " + CustAddress;
    }
}

该列表存储在名为Lists的单独类中。

class Lists
{
    private List<Deliveries> deliveries = new List<Deliveries>();

    public void addDelivery(Deliveries del)
    {
        deliveries.Add(del);
    }


    public List<String> listDeliveries()
    {

        List<String> listDeliveries = new List<string>();

        foreach (Deliveries del in deliveries)
        {
            String delAsString = del.ToString();
            listDeliveries.Add(delAsString);
        }
        return listDeliveries;
    }


    public Deliveries getDelivery(int index)
    {

        int count = 0;
        foreach (Deliveries del in deliveries)
        {
            if (index == count)
                return del;
            count++;
        }
        return null;
    }

最后,代码应该将它添加到Listbox,存储在Form Load

 listBox1.Items.Clear();
        List<String> delList = ListOut.listDeliveries();
        listBox1.Items.AddRange(delList.ToArray());

目前,它没有添加任何东西。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

列表框会自动显示每个对象通过ToString方法返回的字符串。因此,请在Deliveries课程中覆盖此方法,并删除ToString

的实施方式
public override string ToString()
{
    return String.Format("{0} {1} {2}", deliverytime, CustName, CustAddress);
}

现在您可以将交货直接添加到列表框中,而无需先将它们转换为字符串列表。


您可以通过索引访问列表中的交货,而不需要循环

public Deliveries getDelivery(int index)
{
    if (index < 0 || index >= deliveries.Count) {
        return null;
    }
    return deliveries[index];
}

使用调试器来解决您的问题。通过单击该行左侧的灰色边框,在listDeliveries方法的主体的第一个代码行上设置断点。将出现一个棕色圆点,代码将在此行上暂停。通过将鼠标指针悬停在deliveries变量上,您将能够检查其内容。