[英]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.