gpt4 book ai didi

c# - LINQ 相交但将结果添加到新列表

转载 作者:行者123 更新时间:2023-11-30 20:06:14 25 4
gpt4 key购买 nike

我有一个名为 DiscountableObject 的列表。列表中的每个项目依次有一个 Discounts 集合。我需要的是所有 DiscoubtableObjects 通用的折扣列表。

代码:

List<Discount> IntersectionOfDiscounts = new List<Discount>();
foreach(var discountableItem in DiscoutableObject)
{
IntersectionOfDiscounts = IntersectionOfDiscounts.Intersect(discountableItem.Discounts);
}

这无疑会返回一个空列表,因为 IntersectionOfDiscounts 在第一个实例中是空的。

我想要的是获取 DiscountableObject 的第 1 项,将其与 DiscountableObject 的下一项进行比较,依此类推。

我知道我正在尝试做的事情是错误的,因为我正在同时对列表进行交集和添加......但是还有什么让我感到困惑?

我该如何解决这个问题?

最佳答案

IntersectionOfDiscounts 初始化为第一个折扣列表(如果有多个折扣列表)而不是一个空列表。然后,您还可以跳过“foreach”循环中的第一项。

// add check to ensure at least 1 item.
List<Discount> IntersectionOfDiscounts = DiscoutableObject.First().Discounts;
foreach(var discountableItem in DiscoutableObject.Skip(1))
{
IntersectionOfDiscounts = IntersectionOfDiscounts.Intersect(discountableItem.Discounts);
}

关于c# - LINQ 相交但将结果添加到新列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10014279/

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