C# 将DataTable转换为匿名二维数组
我有点纠结于此,似乎在这里找不到答案。我正在使用SautinSoft文档插件在MS Word中创建邮件合并。数据源是我的问题。我的数据在DataTable中,而他们为传递数据而编写的函数在匿名数组中:C# 将DataTable转换为匿名二维数组,c#,arrays,multidimensional-array,C#,Arrays,Multidimensional Array,我有点纠结于此,似乎在这里找不到答案。我正在使用SautinSoft文档插件在MS Word中创建邮件合并。数据源是我的问题。我的数据在DataTable中,而他们为传递数据而编写的函数在匿名数组中: var dataSource = new[] { new { FirstName = "Hector", LastName = "Stupid", Age = "40" }, new { FirstName = "Penelope ", L
var dataSource = new[]
{ new { FirstName = "Hector", LastName = "Stupid", Age = "40" },
new { FirstName = "Penelope ", LastName = "Plank", Age = "25" }
};
因此,我需要遍历我的DataTable,用字段的值将字段填充为这种格式
然后,我执行邮件合并,如下所示:
dc.MailMerge.Execute(dataSource);
问题是怎么做?因为数组是静态填充的。我尝试过许多解决方案,传递DataTable、转换为Dictionary,以及在Ienumerable上传递.ToArray(),但似乎没有任何东西可以复制这种格式
非常感谢。如果我理解正确,您可以尝试使用
AsEnumerable
方法,让DataTable
到IEnumerable
然后使用选择
填充数据
datasource
.AsEnumerable()
.Select(row => new {
FirstName = row["FirstName"],
LastName = row["LastName"],
Age = row["Age"]
}).ToArray()
为什么
datasource.Select(row=>new{FirstName=row.whatever,LastName=row.whateverelse,Age=row.whatever}.ToArray()
不适合您?谢谢,这就是我要找的!非常感谢。很好用。@DavyC没问题很乐意帮助您,如果这对您有帮助,您可以标记此答案:)