Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用LINQ将数据表转换为对象[,]数组_C#_Linq_Datatable - Fatal编程技术网

C# 使用LINQ将数据表转换为对象[,]数组

C# 使用LINQ将数据表转换为对象[,]数组,c#,linq,datatable,C#,Linq,Datatable,如果以前有人问过我,我真诚地道歉;也许我只是瞎了眼,找不到它。是否可以使用LINQ将数据表转换为对象[,]类型数组?使用以下代码,我可以将其转换为对象[],但不幸的是,这不是我需要的: object[][] tableEnumerable = dtReportData.AsEnumerable().Select(x => x.ItemArray).ToArray(); 我需要的是: object [,] = ....? 提前感谢您的帮助,再次,如果这是一个重复的帖子,我道歉 编辑: 我

如果以前有人问过我,我真诚地道歉;也许我只是瞎了眼,找不到它。是否可以使用LINQ将数据表转换为对象[,]类型数组?使用以下代码,我可以将其转换为对象[],但不幸的是,这不是我需要的:

object[][] tableEnumerable = dtReportData.AsEnumerable().Select(x => x.ItemArray).ToArray();
我需要的是:

object [,] = ....?
提前感谢您的帮助,再次,如果这是一个重复的帖子,我道歉

编辑:
我不想要对象[],正如发布的解决方案所指,我需要对象[],]。在开始减去点之前,至少要学会阅读人物。

不能使用Linq创建矩形阵列-Linq仅在一维阵列上运行。对于循环,您需要使用传统的

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];
  }
}
扩展方法类似于:

public static class MyDataTableExtensions
{
   public static object[,] ToRectangularArray(this DataTable dt)
   {
       // code above goes here
   }
}

不能使用Linq创建矩形阵列-Linq仅在一维阵列上运行。对于
循环,您需要使用传统的

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];
  }
}
扩展方法类似于:

public static class MyDataTableExtensions
{
   public static object[,] ToRectangularArray(this DataTable dt)
   {
       // code above goes here
   }
}

不能使用Linq创建矩形阵列-Linq仅在一维阵列上运行。对于
循环,您需要使用传统的

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];
  }
}
扩展方法类似于:

public static class MyDataTableExtensions
{
   public static object[,] ToRectangularArray(this DataTable dt)
   {
       // code above goes here
   }
}

不能使用Linq创建矩形阵列-Linq仅在一维阵列上运行。对于
循环,您需要使用传统的

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];
  }
}
扩展方法类似于:

public static class MyDataTableExtensions
{
   public static object[,] ToRectangularArray(this DataTable dt)
   {
       // code above goes here
   }
}

可能重复的权利,我实际上看了,但这将净我对象[],而不是对象[],谢谢你的建议。Linq不能创建一个矩形数组-你需要使用嵌套
循环。谢谢你斯坦利。我之所以选择LINQ,是因为只有一行代码,而且希望转换时间更快,但如果不能做到,那么我找不到这样的答案也就不足为奇了。LINQ只是普通循环的一种较短语法-通常你看不到任何性能优势。事实上,由于其开销,通常性能会受到很小的影响。可能是右侧的重复,我实际上已经看过了,但这将使我得到对象[],而不是对象[],谢谢你的建议。Linq无法创建矩形数组-你需要对
循环使用嵌套的
。谢谢Stanley。我之所以选择LINQ,是因为只有一行代码,而且希望转换时间更快,但如果不能做到,那么我找不到这样的答案也就不足为奇了。LINQ只是普通循环的一种较短语法-通常你看不到任何性能优势。事实上,由于其开销,通常性能会受到很小的影响。可能是右侧的重复,我实际上已经看过了,但这将使我得到对象[],而不是对象[],谢谢你的建议。Linq无法创建矩形数组-你需要对
循环使用嵌套的
。谢谢Stanley。我之所以选择LINQ,是因为只有一行代码,而且希望转换时间更快,但如果不能做到,那么我找不到这样的答案也就不足为奇了。LINQ只是普通循环的一种较短语法-通常你看不到任何性能优势。事实上,由于其开销,通常性能会受到很小的影响。可能是右侧的重复,我实际上已经看过了,但这将使我得到对象[],而不是对象[],谢谢你的建议。Linq无法创建矩形数组-你需要对
循环使用嵌套的
。谢谢Stanley。我之所以选择LINQ,是因为只有一行代码,而且希望转换时间更快,但如果不能做到,那么我找不到这样的答案也就不足为奇了。LINQ只是普通循环的一种较短语法-通常你看不到任何性能优势。事实上,由于它的开销,通常会对性能造成非常轻微的影响。因此,单靠LINQ是无法做到的,这是很公平的。我将此标记为一个答案,因为提供了一个解决方案。非常感谢。所以,光靠林克是做不到的,这很公平。我将此标记为一个答案,因为提供了一个解决方案。非常感谢。所以,光靠林克是做不到的,这很公平。我将此标记为一个答案,因为提供了一个解决方案。非常感谢。所以,光靠林克是做不到的,这很公平。我将此标记为一个答案,因为提供了一个解决方案。非常感谢。