gpt4 book ai didi

c# - 使用 lambda 进行复杂分组

转载 作者:太空宇宙 更新时间:2023-11-03 10:50:02 25 4
gpt4 key购买 nike

我想使用 C# LINQ 查询对我的数据表进行分组,并返回具有最低和最高价格的表。例如,波纹管表将按 ItemNumber 分组,然后按 Cat1 分组。对于生成的结果,我需要获得该组的最低和最高价格。

ItemNumber  Cat1    Low Price   High Price
100 Item1 1 10
150 Item2 2 11
100 Item1 2 12
150 Item2 5 18

结果

ItemNumber  Cat1    Low Price   High Price
100 Item1 1 12
150 Item2 2 18

最佳答案

假设结果是另一个包含聚合数据的DataTable:

var aggrTable = table.Clone(); // schema only
var groups = table.AsEnumerable()
.GroupBy(r => new { ItemNumber = r.Field<int>("ItemNumber"), Cat1 = r.Field<string>("Cat1") });
foreach(var group in groups)
{
DataRow row = aggrTable.Rows.Add();
row.SetField("ItemNumber", group.Key.ItemNumber);
row.SetField("Cat1", group.Key.Cat1);
row.SetField("Low Price", group.Min(r => r.Field<int>("Low Price")));
row.SetField("High Price", group.Max(r => r.Field<int>("High Price")));
}

结果表(使用您的示例数据测试):

    ItemNumber    Cat1       Low Price   High Price
100 Item1 1 12
150 Item2 2 18

关于c# - 使用 lambda 进行复杂分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21756302/

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