gpt4 book ai didi

c# - 根据唯一 ID 使用 linq 合并 2 个列表以避免重复

转载 作者:行者123 更新时间:2023-12-02 15:44:52 26 4
gpt4 key购买 nike

我有两个产品列表:products 和 extraProducts我的目标是合并 2 个列表,但仅根据 ID 避免重复。

这是我最好的尝试:

List<Product> allProductsWithNoDuplicates = new List<Product>();

allProductsWithNoDuplicates.AddRange(products.Where(p => extraProducts.Select(ep => ep.Id).Contains(p.Id)).ToList());

但是它不起作用,因为它需要位于不包含的位置。

最佳答案

首先,创建一个IComparer类,

public class ProductComparer: IComparer 
{
int IComparer.Compare(object a, object b)
{
if(a.Id == b.Id)
return 0;
else
return 1;
}
}

然后在连接两个列表后使用 Distinct()。

allProductsWithNoDuplicates =   products.Concat(extraProducts).Distinct(new ProductComparer()).ToList();

关于c# - 根据唯一 ID 使用 linq 合并 2 个列表以避免重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36333876/

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