如何转换IEnumerable <igrouping <int,datarow =“”>&gt;到DataTable?

时间:2017-05-15 18:12:13

标签: c# linq linq-to-sql datatable system.data

C#.net,.Net Framework 4.5,VS 2015 我将DataTable作为方法的输入。 需要以特定方式排序(下面):由第一个元素组成的两个组。 然后必须将排序结果作为DataTable返回。

我找到了如何对传入的DataTable行进行排序, 但如何将已排序的记录转换为DataTable?

public DataTable sort(DataTable, dt)
{
    DataTable dt;

    var v1 = dt.Select()
         .OrderBy(r => r["TeamId"])
         .ThenBy(n => n["Last Name"])
         .ThenBy(n => n["First Name"])
         .GroupBy(x => index++ / 2)
         .OrderBy(row => row.First()["Last Name"]);

    // need to convert v1 to DataTable sorted_dt  - how ?
    // v1 is type of  IOrderedEnumerable<IGrouping<int, DataRow>>

    return sorted_dt;
 }

非常感谢

1 个答案:

答案 0 :(得分:0)

我刚发现以下作品:

sorted_dt = new DataTable(); sorted_dt = v1.SelectMany(g =&gt; g)。ToArray()。CopyToDataTable();