我有以下DataTable
ItemNumber Quantity Order
1 2 3
4 3 8
7 7 9
我想将前两列加载到二维数组中。如果不可能,至少我想把第一列放到一维数组中。
当然,我可以写一个循环,但我想知道是否可以避免循环。
此致
答案 0 :(得分:1)
在技术意义上,你不一定能够避免循环,但你可以这样写:
DataTable table = ...;
return table.Rows.Cast<DataRow>().Select(c => new[] { c[0], c[1] });
这是一个数组数组,而不是多维数组。但是从我所看到的情况来看,多维数组似乎在大多数应用程序中被逐步淘汰为标准实践。您可能还想将Select
中的每一行解析为某种实际类型。
如果你把它留作IEnumerable<>
,它不需要循环多于你使用它的次数,但如果你在随机点读取很多(使用索引器,或者什么)你有),你可能想要追加.ToArray()
。该决定取决于您如何使用它。作为一般规则,编写不依赖于随机访问的代码是很好的,因为那时您不必每次记录多次从DataTable
读取