将DataTable转换为匿名二维数组

时间:2018-10-04 18:23:56

标签: c# arrays multidimensional-array

我对此有点挣扎,似乎无法在此处找到答案。我正在使用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(),但似乎没有任何方法可以复制这种格式。

非常感谢。

1 个答案:

答案 0 :(得分:2)

如果我正确理解,您可以尝试使用AsEnumerable方法让DataTableIEnumerable<Row>,然后使用select填充数据。

datasource
    .AsEnumerable()
    .Select(row => new {
        FirstName = row["FirstName"],
        LastName = row["LastName"],
        Age = row["Age"]
    }).ToArray()