使用 LINQ 透視資料
在資料科學中,透視將資料從寬格式轉換為高格式,反之亦然。假設您有一個資料集,其中的項目包含枚舉和使用者對象,並且需要將其展平以進行網格顯示。一種簡單的方法涉及嵌套的 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中文網其他相關文章!