2-Column DataTable to List<int> .NET 2.0
本文关键字:gt NET int lt DataTable to List 2-Column | 更新日期: 2023-09-27 18:07:00
我已经从一个用
编写的旧web应用程序的存储过程中填充了一个DataTablec# under . net 2.0/Visual Studio 2005.
我试图用数据表中的值填充列表,但我一直遇到几个问题。
我的转换过程是这样的:
List<int> SpecialVendorList = new List<int>();
foreach (DataRow datarow in GetAllSpecialVendors().Rows)
{
//Loop through each row
foreach (DataColumn column in GetAllSpecialVendors().Columns)
{
SpecialVendorList.Add(column["ChildVendorId"]);
SpecialVendorList.Add(column["ParentVendorId"]);
}
}
给出如下错误:
Can not apply indexing with [] to an expression of type 'System.Data.DataColumn'
每个SpecialVendorList.Add()方法的
似乎您正在尝试获取每行的列值。您只需要第一个foreach
循环:
List<int> SpecialVendorList = new List<int>();
try
{
foreach (DataRow datarow in GetAllSpecialVendors().Rows)
{
//Loop through each row
SpecialVendorList.Add(Convert.ToInt32(datarow["ChildVendorId"]));
SpecialVendorList.Add(Convert.ToInt32(datarow["ParentVendorId"]));
}
}
catch(FormatException fe)
{
//handle the error
}
这里的字符串索引将获取该列在特定行的值
您需要添加使用该列作为索引的行中的实际值:
List<int> SpecialVendorList = new List<int>();
foreach (DataRow datarow in GetAllSpecialVendors().Rows)
{
//Loop through each row
foreach (DataColumn column in GetAllSpecialVendors().Columns)
{
int val;
if (int.TryParse(datarow[column].ToString(), out val))
SpecialVendorList.Add(val);
}
}