【问题标题】:appending a collections object附加一个集合对象
【发布时间】:2013-09-19 23:57:51
【问题描述】:

我正在开发一个现有的应用程序,它是一个包裹跟踪应用程序,我想附加一个集合列表对象。

我的代码是:

public class VehicleAssignElement
{
    public VehicleAssignElement(string pkgID, string DriverID, string VehicleID)
    {
        pkgID = ConfID;
        DriverID = puID;
        VehicleID = doID;
    }

    public string pkgID { get; set; }
    public string DriverID { get; set; }
    public string VehicleID { get; set; }
}

public class VehicleAssignID
{
    public List<VehicleAssignElement> AssignID { get; set; }
}

public class VehicleAssignIDList
{
    public List<VehicleAssignID> AssignRecord { get; set; }
}

我有一个代码块,我在其中循环获取 pkgID。

assignElement.AssignID.Add( new VehicleAssignElement(oPackageTracking.pkgID,"",""));  

我需要循环另一个代码块来获取 DriverID 和第三个代码块来循环获取 VehicleID。

问题
我将如何添加集合以添加 DriverID 作为第二个元素和 VehicleID 作为第三个元素?
使用 assignElement.AssignID.Add 但这会增加集合。我尝试了插入,但也没有成功。

感谢任何建议。

【问题讨论】:

  • 您不能在接受VehicleAssignElement 对象的Collection 中添加字符串DriverIDVehicleID 作为元素。整个方法需要重新设计。为什么不直接将VehicleAssignElement 对象添加到集合中,然后根据需要将getDriverIDVehicleID 字段添加到集合中?
  • AssignID 来自哪里?您还可以将属性命名为 pkgID 和构造函数的参数 pkgID
  • 你能举个例子吗?我是收藏界的新手。
  • @JeroenvanLangen 我更新了帖子。

标签: c# asp.net collections


【解决方案1】:

我认为你的意思是这样的:

public class VehicleAssignElement
{
    public VehicleAssignElement(string pkgID, string driverID, string vehicleID)
    {
        this.PkgID = pkgID;
        this.DriverID = driverID;
        this.VehicleID = vehicleID;
    }

    public string PkgID { get; set; }
    public string DriverID { get; set; }
    public string VehicleID { get; set; }
}  


public class Form1 : Form
{

    private List<VehicleAssignElement> _assignmentList = new List<VehicleAssignElement>();

    public void DoSomething()
    {
        VehicleAssignElement assignment1 = new VehicleAssignElement("pkg1", "John", "Audi");
        _assignmentList.Add(assignment1);

        VehicleAssignElement assignment2 = new VehicleAssignElement("pkg2", "Morgan", "Volkswagen");
        _assignmentList.Add(assignment2);

        foreach(var assignment in _assignmentList)
        {
            Debug.WriteLine(string.Format("{0} -> {1} - {2}", assignment.PkgID, assignment.DriverID, assignment.VehicleID));
        }
    }
}

未经测试。所以它可能包含一些语法错误。但这是例如。

【讨论】:

  • 哇..非常有趣。和简单。我会试试这个,让你知道。感谢您的建议。
  • 实际上这可能行不通。因为在拿到pkgID之后,app就走出了class文件的作用域到另一个class去获取参数,然后去另一个class去获取驱动列表。该集合是我希望添加到此集合中的内容。希望这是有道理的。所以我想我需要一个全局对象来存储这些值。
  • 只要 Form1 实例存在,_assignmentList 就会存在。并且当将 VehicleAssignElement 添加到 _assignmentList 时,它将保持活动状态。超出范围规则仅适用于没有剩余引用的情况。
猜你喜欢
  • 2017-08-13
  • 2017-07-18
  • 1970-01-01
  • 1970-01-01
  • 2019-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多