使用Linq创建交叉表结果

9 linq crosstab

可能重复:
是否可以使用LINQ旋转数据?

我想知道是否可以用Linq创建交叉表样式结果.我有一些看起来如下的数据:

    var list = new[]
    {
        new {GroupId = 1, Country = "UK", Value = 10},
        new {GroupId = 1, Country = "FR", Value = 12},
        new {GroupId = 1, Country = "US", Value = 18},
        new {GroupId = 2, Country = "UK", Value = 54},
        new {GroupId = 2, Country = "FR", Value = 55},
        new {GroupId = 2, Country = "UK", Value = 56}
    };
Run Code Online (Sandbox Code Playgroud)

而我正在尝试输出到转发器控件,如下所示:

GroupId.....UK.....FR.....US
1...........10.....12.....18
2...........54.....55.....56
Run Code Online (Sandbox Code Playgroud)

它的动态列导致了我的问题.对此有何解决方案?

Dav*_*vid 1

快速搜索后,您可能想要查看 System.Reflection.Emit 中的 ModuleBuilder、TypeBuilder 和 FieldBuilder 类。它们允许您在运行时动态创建类。除此之外,您需要对对象进行分组,然后对从 LINQ 获得的分层结果执行某些操作。我不确定在运行时动态创建匿名类型字段的方法,这听起来像是需要发生的事情。