首頁 > 後端開發 > C++ > LINQ 如何有效地將資料從寬格式轉換為高格式以進行網格顯示?

LINQ 如何有效地將資料從寬格式轉換為高格式以進行網格顯示?

Susan Sarandon
發布: 2025-01-05 16:14:41
原創
375 人瀏覽過

How Can LINQ Efficiently Pivot Data from a Wide to a Tall Format for Grid Display?

使用 LINQ 透視資料

在資料科學中,透視將資料從寬格式轉換為高格式,反之亦然。假設您有一個資料集,其中的項目包含枚舉和使用者對象,並且需要將其展平以進行網格顯示。一種簡單的方法涉及嵌套的 foreach 循環,但這種方法可能會因更改集合大小而引入錯誤。

LINQ 樞軸法

LINQ提供了更乾淨、更有效率的方法透視數據:

  1. 分組並選擇:分組
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()
           };
登入後複製
  1. 決定行數:依長度計算最大行數每組的酒吧陣列。
int rows = grps.Max(grp => grp.Bars.Length);
登入後複製
  1. 輸出列標題:將枚舉值列印為列標題。
foreach (var grp in grps) {
    Console.Write(grp.Foo + "\t");
}
登入後複製
  1. 輸出資料:遍歷行並列印對應的使用者名稱或 null 表示缺失值。
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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板