C# ArrayList列到DataTable列
我有一个由多列组成的ArrayList: 如何将每个值插入到数据表中 我的数据表如下所示: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 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会是什么样子?并不是说你应该解决我的问题,但这对我将来会很好。如果你有时间的话。无论如何,谢谢你的回答。你能看到我的更新吗?你能证实这是你的意思吗?是的,这就是我的意思。呜呼-谢谢你的建议!祝你有一个阳光灿烂的一天。很高兴能帮助你:-你也是!