C# ArrayList列到DataTable列

C# ArrayList列到DataTable列,c#,arraylist,datatable,C#,Arraylist,Datatable,我有一个由多列组成的ArrayList: 如何将每个值插入到数据表中 我的数据表如下所示: ArrayList crmUpdate = new ArrayList(); DataTable insertDt = new DataTable(); insertDt.Columns.Add("Company", typeof(string)); insertDt.Columns.Add("Contractid", typeof(string)); insertDt.Columns.Add("Con

我有一个由多列组成的ArrayList:

如何将每个值插入到数据表中

我的数据表如下所示:

ArrayList crmUpdate = new ArrayList();
DataTable insertDt = new DataTable();

insertDt.Columns.Add("Company", typeof(string));
insertDt.Columns.Add("Contractid", typeof(string));
insertDt.Columns.Add("ContractNumber", typeof(string));
insertDt.Columns.Add("InstAgreeNum", typeof(string));
insertDt.Columns.Add("ProductNumber", typeof(string));
insertDt.Columns.Add("StartDate", typeof(DateTime));
insertDt.Columns.Add("UpdatePrice", typeof(decimal));
foreach (object item in crmUpdate)
{
    DataRow row = insertDt.NewRow();

    row["Company"] = item;
    insertDt.Rows.Add(row);             
}
我试过这样的方法:

ArrayList crmUpdate = new ArrayList();
DataTable insertDt = new DataTable();

insertDt.Columns.Add("Company", typeof(string));
insertDt.Columns.Add("Contractid", typeof(string));
insertDt.Columns.Add("ContractNumber", typeof(string));
insertDt.Columns.Add("InstAgreeNum", typeof(string));
insertDt.Columns.Add("ProductNumber", typeof(string));
insertDt.Columns.Add("StartDate", typeof(DateTime));
insertDt.Columns.Add("UpdatePrice", typeof(decimal));
foreach (object item in crmUpdate)
{
    DataRow row = insertDt.NewRow();

    row["Company"] = item;
    insertDt.Rows.Add(row);             
}
但我不能得到物品,比如公司。我需要知道如何从我的ArrayList中引用Item.Company。希望有人能进一步指导我

谢谢

更新

根据所有的反馈,我可以这样做吗

  // Calculate prices
            List<CrmPartPrice> crmUpdate = new List<CrmPartPrice>();

        foreach (CrmPartPrice item in crmUpdate)
        {
            DataRow row = insertDt.NewRow();
            row["Company"] = item.Company;
            row["Contractid"] = item.ContractId;
            insertDt.Rows.Add(row);

        }

假设由于某种原因无法将ArrayList更改为列表,则需要将ArrayList中的项目转换为其实际类型,因为ArrayList将所有内容存储为对象:


但是,您可能应该将ArrayList更改为一个适当的列表,因为它们共享许多方法,所以可能只需要更改ArrayList crmUpdate=new ArrayList的声明;正如Tim Schmetler在评论中建议的那样,to var crmUpdate=new List。

为什么仍然需要使用ArrayList而不是List?没有理由再使用它了。我有一个ArrayList。。。这就是你的问题!除非您正在使用.NET1.1支持的遗留代码,否则就没有必要再次使用ArrayList。有什么区别吗?更容易得到我的价值观吗?@ZoharPeled我只是想写一些很久以前一个人写的遗留代码。工作正常,我只需要在最后用它做些别的事情。@plaidDK:不要等待客户的反馈。现在就换吧。这就像:var crmUpdate=新列表一样简单。您还应该将参数类型更改为List。谢谢-只是出于好奇-如果我有一个List会是什么样子?并不是说你应该解决我的问题,但这对我将来会很好。如果你有时间的话。无论如何,谢谢你的回答。你能看到我的更新吗?你能证实这是你的意思吗?是的,这就是我的意思。呜呼-谢谢你的建议!祝你有一个阳光灿烂的一天。很高兴能帮助你:-你也是!