使用 LINQ 简单性透视数据
通常需要将数据转换为更用户友好的格式。一种常见的方法是旋转,其中数据被重组以以类似网格的方式显示。想象一下有一个带有枚举和用户对象的项目集合。要在网格中可视化它,您需要将其展平。
LINQ 为此类场景提供了一个优雅的解决方案。首先,我们根据 Enum 值对数据进行分组,从而有效地创建列。
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() };
接下来,根据任意列中的最大项目数确定总行数。
int rows = grps.Max(grp => grp.Bars.Length);
最后,迭代列和行以构建所需的输出。
foreach (var grp in grps) { Console.Write(grp.Foo + "\t"); } Console.WriteLine(); 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 的方法提供了一种简洁有效的数据透视方式,可以轻松地以更有条理、信息更丰富的方式显示数据。
以上是LINQ 如何简化数据透视以增强可读性?的详细内容。更多信息请关注PHP中文网其他相关文章!