object[][] tableEnumerable = dtReportData.AsEnumerable().Select(x => x.ItemArray).ToArray();
我需要的是:
object [,] = ....?
提前感谢您的任何帮助,如果这是重复的帖子,我会道歉。
编辑: 我不希望对象[] []如发布的解决方案所指,我需要对象[,]。至少在开始减去积分之前先学会读人。
答案 0 :(得分:3)
您无法使用Linq创建矩形阵列 - Linq仅在单维数组上运行。您需要使用传统的for
循环:
object[,] objectArray = new object[dtReportData.Rows.Count,
dataTable1.Columns.Count];
for(int row = 0; row < dtReportData.Rows.Count; row++)
{
for(int col = 0; col < dtReportData.Columns.Count; col++)
{
objectArray[row, col] = dtReportData.Rows[row][col];
}
}
你 可以使其成为DataTable
的扩展方法,以便在需要时使语法更清晰:
object[][] tableEnumerable = dtReportData.ToRectangularArray()
扩展方法类似于:
public static class MyDataTableExtensions
{
public static object[,] ToRectangularArray(this DataTable dt)
{
// code above goes here
}
}