首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从多维(2d)数组中提取整列

如何从多维(2d)数组中提取整列
EN

Stack Overflow用户
提问于 2020-02-13 04:07:03
回答 1查看 51关注 0票数 0

我正试图尽可能高效地自动化Excel合并和转换( process )过程。目前,我正在使用Interop Excel作为多维数组读取电子表格:

代码语言:javascript
复制
Excel.Range range = ws.UsedRange;
object[,] worksheetData = (object[,]) range.Value2;

我知道不推荐互操作,但我一直与其他库有问题,而且还需要使用Interop将工作簿转换为这些库可以使用的文件类型(大多数需要.xlsx和我正在使用的工作簿中的所有可能的文件类型)。

因此,每个工作簿(我将合并多达10个工作簿)将作为自己的2 2Darray阅读。现在我有了一个包含所有数据的2D数组,我只需要识别我需要的目标列,并按指定的顺序提取这些列(这样就可以将它们与其他数组组合/合并)。

是否有办法创建每个数组的副本,只从每个多维数组中按指定的顺序选择某些列,以便在以后合并复制数组?

我不知道如何去做这件事,所以任何和所有的提示都是感激的!

EN

回答 1

Stack Overflow用户

发布于 2020-02-13 04:29:27

除了神秘的Linq答案

您还可以使用https://learn.microsoft.com/en-us/dotnet/csharp/iterators扩展方法。

代码语言:javascript
复制
public static class Extensions
{
   public static IEnumerable<T> GetColumn<T>(this T[,] array, int col)
   {
      for (var i = 0; i < array.GetLength(0); i++)
         yield return array[i, col];
   }
}

使用

代码语言:javascript
复制
var cols = someArray.GetColumn(2);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60200309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档