2017-05-15 4 views
0

C# .net, .Net Framework 4.5, VS 2015 Je reçois DataTable comme entrée pour la méthode. Nécessité de trier de manière spécifique (ci-dessous): par premier élément par groupes de deux. Et puis doit retourner les résultats de tri en tant que DataTable.Comment convertir IEnumerable <IGrouping <int, DataRow >> en DataTable?

J'ai trouvé comment trier les lignes DataTable entrantes, mais comment convertir des enregistrements triés en 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; 
} 

Un grand merci

Répondre

0

Je viens de découvrir que les travaux suivants:

sorted_dt = new DataTable(); sorted_dt = v1.SelectMany (g => g) .ToArray(). CopyToDataTable();