public static DataTable[] SplitDataTable(DataTable mainTable, string keyField)
{
var groups = mainTable.AsEnumerable()
.GroupBy(row => row.Field<string>(keyField))
.Select(group =>
{
var dt = mainTable.Clone();
dt.TableName = group.Key;
foreach (var row in group)
{
dt.ImportRow(row);
}
return dt;
})
.ToArray();
return groups;
}