转换 DataRow 项目数组的特定元素?

Transforming a particular element of DataRow item Array?

目前,应用程序代码直接从 excel 读取给我一个 DataTable。它有包含月份 属性 的列(数据行的项目数组的最后一个值)。 在 db 中,月份存储为 int 值。

除了使用 LINQ 工具 change/transform 每个数据行的 ItemArray 的最后一个值并将 monthname 更改为 monthnumber 然后形成新数据之外,我想不出其他方法 table ,在 运行 查询之前。

DataTable dt = obj.ToDataTable();
dt = dt.Rows.Cast<DataRow>().Select(row => row.ItemArray.Select(x => ???)).CopyToDataTable() //stuck here

使用 foreach 循环比使用 LINQ 更容易解决您的问题。

DataTable dataTable = obj.ToDataTable();

// Store the column index of the Month column
var monthColIndex = dataTable.Columns.Count - 1; // Index of Last Column
    
    foreach(var dataRow in dataTable.Rows)
    {
        var row = dataRow as DataRow;
        // Get Month Number from the Month Name column from each row.
        var monthNumber = DateTimeFormatInfo.CurrentInfo.MonthNames.ToList().IndexOf(row[monthColIndex].ToString()) + 1;
        // Assign monthNumber to the last column value in each row.
        row[monthColIndex] = monthNumber;
    }

希望本文能帮助您解决问题。