0

我正在尝试转换并输入列表成员。输入通过类接收,附加到字符串值,然后应添加到列表中。但是,我无法让列表正常工作。

 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;
    }

最后,应该将其添加到列表框中的代码,存储在表单加载中

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

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

4

1 回答 1

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变量上,您将能够检查其内容。

于 2012-12-05T21:29:29.883 回答