gpt4 book ai didi

c# - 如何使用 LINQ 合并来自多个 IEnumerable 的结果

转载 作者:太空狗 更新时间:2023-10-29 20:28:55 25 4
gpt4 key购买 nike

我可以有多个(最多 5 个)IEnumerable<ResortSupplier>并想将它们合并为单个 IEnumerable<ResortSupplier>按供应商代码分组。我的对象看起来像这样:

这是我的对象:

[Serializable]
public class ResortSupplier
{
public string SupplierCode { get; set; }
public IList<Product> ResortProducts { get; set; }
}

[Serializable]
public class Product
{
public string Code { get; set; }
//Other fields...
public IList<PerPricing> PricingDetail { get; set; }
}

[Serializable]
public class PerPricing
{
//Other fields..
public decimal? Price { get; set; }
public Error PricingError { get; set; }
}

多个 IEnumerable 中的数据可能如下所示:

----------------------------------------
IEnumerable<ResortSupplier> - 1

Hyatt Resort
Standard Room
PricingDetail-1
Superior Room
PricingDetail-1

Sandals Resort
Standard Room
PricingDetail-1
Delux Room
PricingDetail-1

----------------------------------------
IEnumerable<ResortSupplier> - 2

Hyatt Resort
Standard Room
PricingDetail-2
Superior Room
PricingDetail-2
One Bed Room Suit
PricingDetail-2

Sandals Resort
Standard Room
PricingDetail-2
Honeymoon Suit
PricingDetail-2
----------------------------------------
IEnumerable<ResortSupplier> - 3
.....
----------------------------------------
IEnumerable<ResortSupplier> - 4
.....
----------------------------------------
IEnumerable<ResortSupplier> - 5
.....
----------------------------------------

我的综合结果应包含:

IEnumerable<ResortSupplier> - Consolidated

Hyatt Resort
Standard Room
PricingDetail-1
PricingDetail-2
Superior Room
PricingDetail-1
PricingDetail-2
Bed Room Suit
PricingDetail-2

Sandals Resort
Standard Room
PricingDetail-1
PricingDetail-2
Delux Room
PricingDetail-1
Honeymoon Suit
PricingDetail-2

----------------------------------------

处理此问题的最佳方法是什么?我尝试了简单的 IEnumerable.Union 和 GroupBy 子句,但没有得到我想要的结果。

最佳答案

如果我理解你的话,你应该使用 Concat 将它们放入一个大集合中,然后你可以根据需要进行分组

IEnumerable<ResortSupplier> master = 
result1.Concat(result2).Concat(result3); //etc

然后像往常一样分组:

var resultGrouped = master.GroupBy(rs => rs.SupplierCode);

关于c# - 如何使用 LINQ 合并来自多个 IEnumerable<T> 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5791917/

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