Pivoter les données avec LINQ
En science des données, le pivotement transforme les données d'un format large en un format haut ou vice versa. Supposons que vous disposiez d'un ensemble de données avec des éléments contenant un objet Enum et un objet User et que vous deviez l'aplatir pour un affichage en grille. Une méthode simple implique des boucles foreach imbriquées, mais cette approche peut introduire des erreurs dues à la modification de la taille de la collection.
L'approche pivot LINQ
LINQ fournit une méthode plus propre et plus efficace pour faire pivoter les données :
var grps = from d in data group d by d.Foo into grp select new { Foo = grp.Key, Bars = grp.Select(d2 => d2.Bar).ToArray() };
int rows = grps.Max(grp => grp.Bars.Length);
foreach (var grp in grps) { Console.Write(grp.Foo + "\t"); }
for (int i = 0; i < rows; i++) { foreach (var grp in grps) { Console.Write((i < grp.Bars.Length ? grp.Bars[i] : null) + "\t"); } Console.WriteLine(); }
Ce code effectue élégamment le pivotement des données, fournissant une solution propre et efficace pour aplatir des ensembles de données complexes dans une grille format.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!