如何在 VB.NET 中使用 Linq 从数据表中获取数据透视表?

埃尔坎·锡兰

我有一个这样的数据表:

name    |   color of name
----------------------
x       |   red
y       |   blue
z       |   yellow
x       |   yellow
y       |   red

我需要像这样获得这张表的枢轴:

name    |   red     |   blue    |   yellow  | total
-------------------------------------------------------
x       |   1       |   0       |   1       |   2
y       |   1       |   1       |   0       |   2
z       |   0       |   0       |   1       |   1

如何在 VB.NET 中使用 Linq 执行此操作?

颜色不是动态的。我可以将它们放在硬编码中的查询中。

所以我需要按名称和列中记录颜色的总和对所有记录进行分组。然后是总颜色的总和(如果你帮助第一个,我可以计算总数:p)

网络魔法师

我创建了我的DataTable枢轴扩展方法的变体,该方法根据列的存在创建交集值并添加总计列。

public static class DataTableExt {
    public static DataTable PivotByOverWithTotal(this DataTable dt, string ByRowFieldName, string OverColFieldName) {
        var res = new DataTable();
        if (dt.Rows.Count > 0) {
            var dtg = dt.AsEnumerable().GroupBy(r => r[ByRowFieldName], r => r[OverColFieldName].ToString());

            res.Columns.Add(ByRowFieldName, dt.Columns[ByRowFieldName].DataType);
            var colNames = dtg.SelectMany(rg => rg).Distinct().OrderBy(n => n);
            foreach (var n in colNames)
                res.Columns.Add(n, typeof(int));
            res.Columns.Add("Total", typeof(int));

            foreach (var rg in dtg) {
                var newr = res.NewRow();
                newr[ByRowFieldName] = rg.Key;
                int total = 0;
                foreach (var rv in colNames) {
                    var val = rg.Contains(rv) ? 1 : 0;
                    newr[rv] = val;
                    total += val;
                }
                newr["Total"] = total;
                res.Rows.Add(newr);
            }
        }
        return res;
    }
}

你像这样使用它:

var ansdt = src.PivotByOverWithTotal("name", "color");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在vb.net中使用linq从数据表中查询单个值

来自分类Dev

在VB.NET中使用LINQ从数据表填充列表(字符串)

来自分类Dev

如何使用Linq从数据表中获取列值

来自分类Dev

如何使用linq将数据获取到数据表

来自分类Dev

数据表中特定列的VB.NET LINQ或ADO重复数据删除

来自分类Dev

我如何使用linq获取数据表的总和

来自分类Dev

如何在ASP.NET WebForm中的jQuery Ajax中使用C#数据表?

来自分类Dev

如何在vb.net中增加数据表的名称

来自分类Dev

如何在VB.NET中返回IEnumerable数据表

来自分类Dev

如何使用LINQ从数据表中获取唯一列

来自分类Dev

如何在Vb net中使用For子句从数据库mysql获取数据

来自分类Dev

在VB.NET中使用Linq

来自分类Dev

如何在VB.NET中使用不同的数据库表填充两个组合框

来自分类Dev

如何使用数据表从Laravel中的数据透视表检索数据

来自分类Dev

如何从Linq的数据表中获取2列

来自分类Dev

如何从Linq的数据表中获取2列

来自分类Dev

如何在.NET Core 3中使用LINQ语法查询多个表

来自分类Dev

如何在 asp.net MVC 中使用 Linq、C# 访问连接表中的列

来自分类Dev

VB.Net数据表到Dropdowlist中,使用2行作为一项

来自分类Dev

如何在asp.net mvc中使用Linq从数据库中删除多个记录

来自分类Dev

使用Linq的数据透视表

来自分类Dev

如何使用LINQ生成数据透视表?

来自分类Dev

如何获取Excel数据透视表中的行数以在数据透视表之外使用?

来自分类Dev

如何使用php从数据表中获取数据

来自分类Dev

如何使用EF / LINQ从其他表中获取数据

来自分类Dev

如何使用 LinQ To Entities 从多个表中获取数据行

来自分类Dev

如何使用 linq 和 entityframework 在 json 中获取表数据

来自分类Dev

在vb.net中使用linq从数据库显示列表

来自分类Dev

如何在vb.net中使用Switch语句访问Access数据库

Related 相关文章

  1. 1

    如何在vb.net中使用linq从数据表中查询单个值

  2. 2

    在VB.NET中使用LINQ从数据表填充列表(字符串)

  3. 3

    如何使用Linq从数据表中获取列值

  4. 4

    如何使用linq将数据获取到数据表

  5. 5

    数据表中特定列的VB.NET LINQ或ADO重复数据删除

  6. 6

    我如何使用linq获取数据表的总和

  7. 7

    如何在ASP.NET WebForm中的jQuery Ajax中使用C#数据表?

  8. 8

    如何在vb.net中增加数据表的名称

  9. 9

    如何在VB.NET中返回IEnumerable数据表

  10. 10

    如何使用LINQ从数据表中获取唯一列

  11. 11

    如何在Vb net中使用For子句从数据库mysql获取数据

  12. 12

    在VB.NET中使用Linq

  13. 13

    如何在VB.NET中使用不同的数据库表填充两个组合框

  14. 14

    如何使用数据表从Laravel中的数据透视表检索数据

  15. 15

    如何从Linq的数据表中获取2列

  16. 16

    如何从Linq的数据表中获取2列

  17. 17

    如何在.NET Core 3中使用LINQ语法查询多个表

  18. 18

    如何在 asp.net MVC 中使用 Linq、C# 访问连接表中的列

  19. 19

    VB.Net数据表到Dropdowlist中,使用2行作为一项

  20. 20

    如何在asp.net mvc中使用Linq从数据库中删除多个记录

  21. 21

    使用Linq的数据透视表

  22. 22

    如何使用LINQ生成数据透视表?

  23. 23

    如何获取Excel数据透视表中的行数以在数据透视表之外使用?

  24. 24

    如何使用php从数据表中获取数据

  25. 25

    如何使用EF / LINQ从其他表中获取数据

  26. 26

    如何使用 LinQ To Entities 从多个表中获取数据行

  27. 27

    如何使用 linq 和 entityframework 在 json 中获取表数据

  28. 28

    在vb.net中使用linq从数据库显示列表

  29. 29

    如何在vb.net中使用Switch语句访问Access数据库

热门标签

归档