Pivoter les données avec la simplicité de LINQ
La transformation des données dans un format plus convivial est souvent nécessaire. Une approche courante est le pivotement, où les données sont restructurées pour les afficher sous forme de grille. Imaginez avoir une collection d'éléments avec un objet Enum et un objet User. Pour le visualiser dans une grille, vous devez l'aplatir.
LINQ fournit une solution élégante pour de tels scénarios. Commençons par regrouper les données en fonction de la valeur Enum, créant ainsi des colonnes.
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() };
Ensuite, déterminez le nombre total de lignes en fonction du nombre maximum d'éléments dans n'importe quelle colonne.
int rows = grps.Max(grp => grp.Bars.Length);
Enfin, parcourez les colonnes et les lignes pour construire le résultat souhaité.
foreach (var grp in grps) { Console.Write(grp.Foo + "\t"); } Console.WriteLine(); 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 système basé sur LINQ Cette approche fournit un moyen concis et efficace de faire pivoter les données, ce qui facilite leur affichage de manière plus organisée et informative.
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!