gpt4 book ai didi

C# 对列表进行重复数据删除并合并列表

转载 作者:行者123 更新时间:2023-12-02 02:08:48 25 4
gpt4 key购买 nike

用列表删除列表重复数据的最佳方法是什么?粗略的类示例:

Class CustomType{
string prop1
string prop2
string prop3
int quantity
List<AnotherCustomType> serials
}

所以我有一个 CustomType 对象的列表。我开始尝试进行分组,但在列表上挂断了。我需要将列表中的项目与相同的 prop1 和 prop2 组合起来,并组合它们的列表(系列)和组合数量。

我开始走这条路...

 List<CustomType> c = (from x in items
group x by new {
x.prop1, x.prop2
} into y
select new CustomType {
quantity = y.Sum(z => z.quantity),
prop1 = y.prop1,
prop2=y.prop2,
prop3 = y.prop3,
serials= ????? how do I combine the lists
}

我还差得远吗?

最佳答案

您可以使用方法SelectMany来展平serials:

List<CustomType> c = (from x in items
group x by new
{
x.prop1,
x.prop2
} into y
select new CustomType
{
quantity = y.Sum(z => z.quantity),
prop1 = y.Key.prop1,
prop2 = y.Key.prop2,
prop3 = y.First().prop3,
serials = y.SelectMany(item => item.serials).ToList()
}).ToList();

关于C# 对列表进行重复数据删除并合并列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68010529/

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