[英]C# - check if column in CSV exists before assigning it to datatable
我有这个:
var productDetailsFromFile = (from row in dt.AsEnumerable()
select new ProductDetails
{
ItemNumber = row.Field<string>("Item Number"),
Cost = row.Field<string>("Cost").ToDecimal(),//custom method .ToDecimal
WHQtyList = new List<int>()
{
row.Field<string>("foo").ToInteger(),//custom method .ToInteger
row.Field<string>("bar").ToInteger(),
row.Field<string>("foo2").ToInteger(),
}
}).ToList();
它从 .csv 文件中读取信息。 我想要实现的是一种优雅的方式来检查字段是“foo”、“bar”还是“foo2”。
现在的问题是,如果从 CSV 文件中删除其中一列,则会弹出不在数据表中的列错误。 我现在不能让它工作 2 个小时。
我本质上寻求的是 - 如何在我使用它来初始化列表时检查列是否存在,或者如果该列不存在,则每行的默认值为 0,其中不存在。
我是通过一种方法做到的。 我想知道是否有一种方法可以更快地完成它,而不必添加额外的代码行或使额外的代码行少于现在的代码行。
int ContainsColumn (string columnName, DataTable table, DataRow row)
{
DataColumnCollection columns = table.Columns;
if (columns.Contains(columnName))
{
return int.Parse(row.Field<string>(columnName));
}
else
{
return 0;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.