C# 将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

我有点纠结于此,似乎在这里找不到答案。我正在使用SautinSoft文档插件在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);
问题是怎么做?因为数组是静态填充的。我尝试过许多解决方案,传递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没问题很乐意帮助您,如果这对您有帮助,您可以标记此答案:)