我有一堆DataTables
需要转换为object[,]
数组(不是 object[][]
数组)。就性能而言,最有效的方法是什么?
我知道我可以通过object[dt.Rows.Count, dt.Columns.Count]
最初构建我的方法来做到这一点,然后遍历行并将每一行解析到数组中的一个位置,但我相当确定还有其他方法,例如使用 Linq 或 System.Data 特定功能,例如dataRow.ToItemArray()
可能更有效率。
我DataTables
的大小可变,除了字符串之外,还包含需要适当格式化的日期和数字。
例如,如果我的一个数据表包含
ID 名称 日期 值 1 雷切尔 2013 年 1 月 1 日 00:00:00 100.0000 2 约瑟夫 2012 年 3 月 31 日 00:00:00 50.0000 3 莎拉 2/28/2013 00:00:00 75.5000
那么我想要一个object[,]
包含完全相同数据的数组(最好带有标题),但带有格式化的日期和值
arr[x,0] = row[x].Field<int>("Id");
arr[x,1] = row[x].Field<string>("Name");
arr[x,2] = row[x].Field<DateTime>("Date").ToString("M/d/yy");
arr[x,3] = row[x].Field<decimal>("Value").ToString("C2"); // Currency format