我对此有点挣扎,似乎无法在此处找到答案。我正在使用SautinSoft Document插件在MS Word中创建邮件合并。数据源是我的问题。我的数据在DataTable中,而他们编码为传递数据的函数在一个匿名数组中:
var dataSource = new[]
{ new { FirstName = "Hector", LastName = "Stupid", Age = "40" },
new { FirstName = "Penelope ", LastName = "Plank", Age = "25" }
};
因此,我需要遍历DataTable,将字段及其值填充为这种格式。
然后,我这样执行邮件合并:
dc.MailMerge.Execute(dataSource);
问题是如何?由于该数组是静态填充的。我已经尝试了许多解决方案,通过Ienumerable传递DataTable,转换为Dictionary和.ToArray(),但似乎没有任何方法可以复制这种格式。
非常感谢。
答案 0 :(得分:2)
如果我正确理解,您可以尝试使用AsEnumerable
方法让DataTable
到IEnumerable<Row>
,然后使用select
填充数据。
datasource
.AsEnumerable()
.Select(row => new {
FirstName = row["FirstName"],
LastName = row["LastName"],
Age = row["Age"]
}).ToArray()