繁体   English   中英

使用LINQ将DataTable转换为object [,]数组

[英]Convert DataTable into object[ , ] array with LINQ

真心的道歉,我真心的道歉。 也许我只是盲目的而没有找到它。 是否可以使用LINQ将DataTable转换为object [,]类型的数组? 使用以下代码,我可以将其转换为object [] [],但是不幸的是,这不是我所需要的:

object[][] tableEnumerable = dtReportData.AsEnumerable().Select(x => x.ItemArray).ToArray();

我需要的是:

object [,] = ....?

预先感谢您的帮助,如果这是重复的帖子,我再次表示歉意。

编辑:我不希望object [] []作为发布的解决方案所指,我需要object [,]。 至少在开始减分之前先学会阅读。

您不能使用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
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM