【问题标题】:System.Array to POCO using LINQ使用 LINQ 到 POCO 的 System.Array
【发布时间】:2013-06-30 10:57:19
【问题描述】:

我正在从 Excel 工作表中读取数据,所以我有这段代码来获取我想要的区域;

Excel.Range range = (Excel.Range)worksheet.get_Range("A9", "AO" + (worksheet.UsedRange.Rows.Count).ToString());
System.Array rangeCells = (System.Array)range.Cells.Value;

所以我的数据是 x 长和 41 个单元格宽,所以我的数组看起来像这样;

rangeCells[1,1] through to rangeCells[1,41] is line 1
rangeCells[2,1] through to rangeCells[2,41] is line 2

以此类推直到结束。

有人知道将每一行放入对象的 LINQ 方法吗?

【问题讨论】:

  • 为什么需要 LINQ?
  • 对象会是什么样子?
  • @I4V 为什么需要空气来呼吸?
  • @HighCore 不要仅仅为了评论而评论。 Linq 很好,但不是必需的。格里格,Linq 不会让你的代码更高效。
  • @griegs 通过 RandomWebGuy 的链接,似乎多维数组确实实现了非泛型 IEnumerable。所以range.Cells.Value.Cast<whatever>().Select()也是一种选择。

标签: c# linq system.array


【解决方案1】:

【讨论】:

  • @AbeMiessler Seeing as LINQ-to-Objects 是IEnumerable(T) 之上的一组扩展方法,事实上只有一维数组实现了该接口。
  • @KevinBabcock 如果通过“解决方法”你的意思是做一些事情来展平阵列,那么你就不再真正使用二维阵列了。 (我承认这让人毛骨悚然,但仅此含糊不清就意味着这个答案本身并没有错,如果不是特别有用的话。)
  • @millimoose 同意(删除我的评论)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-10
  • 1970-01-01
相关资源
最近更新 更多