如何按列旋转DataTable

时间:2014-06-04 16:32:21

标签: c# linq datatable pivot-table

我喜欢按已知列对数据表进行分组,但其余列未知。图中的第一个表是源,第二个表是我想要生成的表。只有分组所需的列肯定会在那里。我不知道其余的列,所以它必须是动态的。

到目前为止,我已尝试使用Linq,但它并没有产生我想要的输出。

var dt = res.AsEnumerable()
            .GroupBy(r => r.Field<string>("GroupBy"))
            .SelectMany(t => t.ToList())
            .CopyToDataTable();

enter image description here

1 个答案:

答案 0 :(得分:0)

当你谈到转动表时,你通常会以某种方式总结数据 - 计数,总计,平均。如果您只知道一列,除了计算每组中的行数之外,您无法实际转动它:

var dt = res
    .AsEnumerable()
    .GroupBy(r => r.Field<String>("ColumnToGroup"))
    .Select(r => new { Key = r.Key, Count = r.Count() });

为您提供一个类似于:

的数据透视表
Key          Count
London       2
Manchester   2

要做一个有用的支点,您必须了解表格中的数据。