【问题标题】:How to pivot DataTable by Column如何按列旋转 DataTable
【发布时间】:2014-06-04 16:32:21
【问题描述】:

我喜欢按已知列对数据表进行分组,但其余列未知。图片中的第一个表是来源,第二个表是我喜欢制作的。只有需要分组的列才能确定存在。我不知道其余的列,所以它必须是动态的。

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

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

【问题讨论】:

  • 不清楚你的“输出”表是什么,因为它不是真正的数据表。你想用你的输出做什么?
  • 嗨@cahinton ..我认为我想要的输出在我的问题中非常清楚,因为我有它的图片。输出表将用于创建 pdf。
  • 那么,对于第 1 行,UnknownColumn1 的值是伦敦?该行的UnknownColumn2 的值是多少?
  • 不需要那个值。

标签: c# linq datatable pivot-table


【解决方案1】:

当您谈到对表格进行透视时,您通常是在以某种方式汇总数据——计数、总计、平均。如果您只知道一列,则除了计算每组中有多少行之外,您无法真正对其进行旋转:

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

要进行有用的数据透视,您必须对表中的数据有所了解。

【讨论】:

  • 嗨,cahinton,也许'pivot' 不是我想要做的事情的正确词。如果输出数据表看起来像我帖子中图片中的第二个表,我很高兴。
猜你喜欢
  • 2021-10-09
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-08
  • 2011-06-13
  • 1970-01-01
相关资源
最近更新 更多