使用LINQ将具有相同值的行分组为列

帕维兹·罗宾(Parvez M Robin)

我有一个LINQ查询,其结果是这样的。

Student  Subject    Mark 
Adam     English    80
Adam     Math       70
Adam     Science    60
Moses    English    95
Moses    Science    75

现在我想要的就是像下面这样转换它

Student English Math    Science
Adam    80      70      60
Moses   95              75

注意:科目数量不是固定的。

杰登

试试这样的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace ConsoleApplication12
{
    class Program
    {
        static void Main(string[] args)
        {
            DataTable sourceTable = new DataTable();
            sourceTable.Columns.Add("Student", typeof(string));
            sourceTable.Columns.Add("Subject", typeof(string));
            sourceTable.Columns.Add("Mark", typeof(int));

            sourceTable.Rows.Add(new object[] { "Adam","English", 80});
            sourceTable.Rows.Add(new object[] { "Adam","Math", 70});
            sourceTable.Rows.Add(new object[] { "Adam","Science", 60});
            sourceTable.Rows.Add(new object[] { "Moses","English", 95});
            sourceTable.Rows.Add(new object[] { "Moses","Science", 75});

            List<string> subjects = sourceTable.AsEnumerable().Select(x => x.Field<string>("Subject")).Distinct().ToList();
            DataTable pivotTable = new DataTable();
            pivotTable.Columns.Add("Student", typeof(string));
            foreach(string subject in subjects)
            {
                pivotTable.Columns.Add(subject, typeof(int));
            }
            var students = sourceTable.AsEnumerable()
                .GroupBy(x => x.Field<string>("Student")).ToList();

            foreach (var student in students)
            {
                DataRow newRow = pivotTable.Rows.Add();
                newRow["Student"] = student.Key;
                foreach (DataRow row in student)
                {
                    newRow[row.Field<string>("Subject")] = row.Field<int>("Mark"); 
                }

            }
        }
    }
}

在此处输入图片说明

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Swift将具有相同类型的字典分组为具有完整键和值的数组

来自分类Dev

如何将行分组为具有多个值的列?

来自分类Dev

检查更大的行值,然后将每个具有相同值的行按ID分组

来自分类Dev

按行分组的值按具有相同名称的列分组

来自分类Dev

如何使用Unix命令为特定列查找具有相同值的文件中的行?

来自分类Dev

如何在具有R的列中将相同值的行值分组?

来自分类Dev

如何在具有R的列中将相同值的行值分组?

来自分类Dev

将X列中具有相同值但Y列中具有不同值的行进行分组(无重复)

来自分类Dev

将列更新为另一行中具有相同ID的该列的任何未知值

来自分类Dev

SQL 显示具有相同一列值的行分组的行

来自分类Dev

分组/对具有相同列值的值求和

来自分类Dev

如何将MySQL中具有相同值的行分组到php中?

来自分类Dev

如何将MySQL中具有相同值的行分组到php中?

来自分类Dev

将具有值的列转置为行

来自分类Dev

将具有相同属性的连续事件分组,并计算其他列的累计值

来自分类Dev

将具有相同属性的连续事件分组,并计算其他列的累计值

来自分类Dev

熊猫-分组和汇总列中具有相同值的连续行

来自分类Dev

SQL 计算列中具有相同值的行并按 id 分组?

来自分类Dev

r-使用kable将列与具有相同名称的子列分组

来自分类Dev

在R中将具有相同缺失值模式的列分组

来自分类Dev

在多列上对具有相同列值的行进行分组

来自分类Dev

将具有相同日期的Pandas df行分组

来自分类Dev

将具有相同日期的Pandas df行分组

来自分类Dev

如何在Python中使用相同的键将具有不同值的列划分为不同的行

来自分类Dev

将具有值的对象分组为索引数组

来自分类Dev

将某列中具有相同值的excel中的所有行求和

来自分类Dev

将列选择为按列值分组的行

来自分类Dev

将行值显示为按特定列分组的列

来自分类Dev

使用PromQL将具有相同值的度量标准分组到标签而无需知道标签值

Related 相关文章

  1. 1

    使用Swift将具有相同类型的字典分组为具有完整键和值的数组

  2. 2

    如何将行分组为具有多个值的列?

  3. 3

    检查更大的行值,然后将每个具有相同值的行按ID分组

  4. 4

    按行分组的值按具有相同名称的列分组

  5. 5

    如何使用Unix命令为特定列查找具有相同值的文件中的行?

  6. 6

    如何在具有R的列中将相同值的行值分组?

  7. 7

    如何在具有R的列中将相同值的行值分组?

  8. 8

    将X列中具有相同值但Y列中具有不同值的行进行分组(无重复)

  9. 9

    将列更新为另一行中具有相同ID的该列的任何未知值

  10. 10

    SQL 显示具有相同一列值的行分组的行

  11. 11

    分组/对具有相同列值的值求和

  12. 12

    如何将MySQL中具有相同值的行分组到php中?

  13. 13

    如何将MySQL中具有相同值的行分组到php中?

  14. 14

    将具有值的列转置为行

  15. 15

    将具有相同属性的连续事件分组,并计算其他列的累计值

  16. 16

    将具有相同属性的连续事件分组,并计算其他列的累计值

  17. 17

    熊猫-分组和汇总列中具有相同值的连续行

  18. 18

    SQL 计算列中具有相同值的行并按 id 分组?

  19. 19

    r-使用kable将列与具有相同名称的子列分组

  20. 20

    在R中将具有相同缺失值模式的列分组

  21. 21

    在多列上对具有相同列值的行进行分组

  22. 22

    将具有相同日期的Pandas df行分组

  23. 23

    将具有相同日期的Pandas df行分组

  24. 24

    如何在Python中使用相同的键将具有不同值的列划分为不同的行

  25. 25

    将具有值的对象分组为索引数组

  26. 26

    将某列中具有相同值的excel中的所有行求和

  27. 27

    将列选择为按列值分组的行

  28. 28

    将行值显示为按特定列分组的列

  29. 29

    使用PromQL将具有相同值的度量标准分组到标签而无需知道标签值

热门标签

归档