将对象转换为列表或数组 MVC

Convert an object into list or array MVC

我有一个 MVC 网格控件,它将集合作为对象传回我的控制器。 该对象是网格中行的 ArrayList,每一行都是一个列表,表示 class 称为 lineitem 的实例,该 lineitem 是父记录 class.

的一部分

我正在尝试通过遍历对象数组将对象加载到 class,创建我的 lineitem class 的实例,然后将它添加到我的父记录 class parent.AddItem(行项目)。我最初将其创建如下

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

然而,正如我确定的那样,这是一个 ArrayList,我将其更改为

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

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

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'."}

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

由于 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);

            }