【问题标题】:Convert an object into list or array MVC将对象转换为列表或数组 MVC
【发布时间】:2015-10-02 20:42:59
【问题描述】:

我有一个 MVC 网格控件,它将集合作为对象传递回我的控制器。 该对象是来自网格的行的 ArrayList,每一行都是一个 List,表示一个名为 lineitem 的类的实例,该类是父记录类的一部分。

我试图通过遍历对象数组将对象加载到类中,创建我的 lineitem 类的实例,然后将其添加到我的父记录类 parent.AddItem(lineitem)。我最初是这样创建的

var items = requestData.ExtraRequestData["Items"];

但是,我确定这是一个 ArrayList,我将其更改为

List<string> mylist;    
ArrayList items = (ArrayList)requestData.ExtraRequestData["Items"];
mylist = items.Cast<string>().ToList();

我正在尝试将 ArrayList 转换为 List,以便循环遍历它并将其加载到我的类中。

Model.Parent parent = new Model.Parent();
Model.LineItem lineitem = new Model.LineItem();

for (int I = 0; I < mylist.length; I++){

       lineitem.a = item.a,
       lineitem.b = item.b
parent.AddItem(lineitem)
}

我在设置 mylist = items 的那一行收到以下错误:

{"Unable to cast object of type 'System.Collections.Hashtable' to type 'System.String'."}

我缺少什么来转换它以便将它加载到我的类中?

【问题讨论】:

  • 如果你展示一些有用的代码

标签: model-view-controller arraylist hashtable


【解决方案1】:

由于 ArrayList 中的每个项目都是一个哈希表,因此我最终按如下方式循环遍历它: ParentClass ReconHdr = new ParentClass();

            foreach (System.Collections.Hashtable  o in items)
            {
               //lineItem.LineSeq = Convert.ToInt32(item.Value);
                ArrayList list = new ArrayList(o.Values);
                ChildClass lineItem = new ChildClass();

                lineItem.StmntDocNum = list[0].ToString();
                lineItem.PrtlAmt = Convert.ToDouble(list[1]);
                lineItem.GLAcctCode = list[2].ToString();
                lineItem.LineSeq = Convert.ToInt32(list[3]);
                lineItem.ClinicID = Convert.ToInt32(list[4]);
                lineItem.PrtlTranDate = Convert.ToDateTime(list[5]);
                lineItem.StmntTranDate = Convert.ToDateTime(list[6]);
                lineItem.PrtlFinRptDate = Convert.ToDateTime(list[7]);
                lineItem.StmntEndDate = Convert.ToDateTime(list[8]);
                lineItem.StmntAmt = Convert.ToDouble(list[9]);
                lineItem.PrtlDocNum = list[10].ToString();
                lineItem.PrtlUniqueID = list[11].ToString();

                ReconHdr.AddItem(lineItem);

            }

【讨论】:

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