gpt4 book ai didi

linq - 使用Linq创建交叉表结果

转载 作者:行者123 更新时间:2023-12-04 04:14:24 25 4
gpt4 key购买 nike

这个问题已经在这里有了答案:




9年前关闭。




Possible Duplicate:
Is it possible to Pivot data using 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}
};

并且我正在尝试输出到中继器控件,如下所示:
GroupId.....UK.....FR.....US
1...........10.....12.....18
2...........54.....55.....56

它的动态列导致了我的问题。有什么解决办法吗?

最佳答案

您需要一个runtimy类来保存这些runtimy结果。 xml怎么样?

XElement result = new XElement("result",
list.GroupBy(i => i.GroupId)
.Select(g =>
new XElement("Group", new XAttribute("GroupID", g.Key),
g.Select(i => new XAttribute(i.Country, i.Value))
)
)
);

您是否希望每个结果单元格有多个记录?如果是这样,那将需要在其中进行一些求和(和更多的分组)。

(此答案是概念证明,而不是最终结果。有几个问题要解决,例如:列的排序,缺少的单元格等)。

关于linq - 使用Linq创建交叉表结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/320895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com