using System;
using System.Data;
using System.Linq;
namespace App {
class Program {
static void Main(string[] args) {
var pretendThisIsADatabaseTable = new[] { new { Name = "Steve", Age = 33 }, new { Name = "Doug", Age = 34 } };
//Create empty destination data table
DataTable personTable = new DataTable();
personTable.TableName = "PersonTable";
personTable.Columns.Add("Name", typeof(string));
personTable.Columns.Add("Age", typeof(int));
//Query anonymous type array as DataRow objects
var results = from person in pretendThisIsADatabaseTable
select new Func<DataRow, string, int, DataRow>(
(DataRow row, string name, int age) => {
row["Name"] = name;
row["Age"] = age;
return row;
}
)
.Invoke(personTable.NewRow(), person.Name, person.Age);
//put rows into data table
results.ToList().ForEach(row => personTable.Rows.Add(row));
personTable.WriteXml(Console.Out);
}
}
}