将DataTable转换为数组C#

时间:2014-07-20 19:55:47

标签: c# arrays datatable

我有以下DataTable

ItemNumber Quantity Order
1          2        3
4          3        8
7          7        9

我想将前两列加载到二维数组中。如果不可能,至少我想把第一列放到一维数组中。

当然,我可以写一个循环,但我想知道是否可以避免循环。

此致

1 个答案:

答案 0 :(得分:1)

在技术意义上,你不一定能够避免循环,但你可以这样写:

DataTable table = ...;

return table.Rows.Cast<DataRow>().Select(c => new[] { c[0], c[1] });

这是一个数组数组,而不是多维数组。但是从我所看到的情况来看,多维数组似乎在大多数应用程序中被逐步淘汰为标准实践。您可能还想将Select中的每一行解析为某种实际类型。

如果你把它留作IEnumerable<>,它不需要循环多于你使用它的次数,但如果你在随机点读取很多(使用索引器,或者什么)你有),你可能想要追加.ToArray()。该决定取决于您如何使用它。作为一般规则,编写不依赖于随机访问的代码是很好的,因为那时您不必每次记录多次从DataTable读取