2017-05-15 407 views
0

C#.net,.Net Framework 4.5,VS 2015 我得到DataTable作为方法的输入。 需要以特定方式(如下)进行排序:按两个组中的第一个元素排序。 然后必须返回排序结果作为DataTable。如何将IEnumerable <IGrouping <int,DataRow >>转换为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; 
} 

非常感谢

回答

0

我发现以下工作:

sorted_dt =新的DataTable(); sorted_dt = v1.SelectMany(g => g).ToArray()。CopyToDataTable();

相关问题