LINQ によるデータのピボット
データ サイエンスでは、ピボットによりデータをワイド形式からトール形式に、またはその逆に変換します。 Enum と User オブジェクトを含むアイテムを含むデータセットがあり、グリッド表示用にそれを平坦化する必要があるとします。直接的な方法にはネストされた foreach ループが含まれますが、この方法ではコレクション サイズの変更によるエラーが発生する可能性があります。
LINQ ピボット アプローチ
LINQ は、よりクリーンで効率的な方法を提供します。データをピボットするには:
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(); }
このコードはデータ ピボットをエレガントに実行し、複雑なデータセットをグリッド形式に平坦化するクリーンで効率的なソリューションを提供します。
以上がLINQ はグリッド表示用にデータをワイド形式からトール形式に効率的にピボットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。