我正在尝试转换并输入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());
目前,它没有添加任何东西。任何帮助将不胜感激
答案 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
变量上,您将能够检查其内容。