gpt4 book ai didi

c# - 如何使用 LINQ 合并树(和总计数)?

转载 作者:太空狗 更新时间:2023-10-30 01:35:16 25 4
gpt4 key购买 nike

假设我有这些类(class):

public class Option
{
public int OptionID { get; set; }
public bool IsSelected { get; set; }
}

public class Product
{
public int ProductID { get; set; }
public int Quantity { get; set; }
public List<Option> Options { get; set; }
}

假设这是我添加一些 Product 后的结果对象变成 List<Product>

2x Product 1
OptionID 1
OptionID 1
OptionID 2
OptionID 2

2x Product 1
OptionID 1
OptionID 1
OptionID 2
OptionID 2

如何使用 LINQ (lambda) 将这些结果转换为单个结果,其中 IsSelected = true

4x Product 1
4x OptionID 1
4x OptionID 2

最佳答案

如果我没有正确理解你的问题,这是很典型的 GroupBy :

var result = data.GroupBy(x => x.ProductID, 
(key, values) => new Product()
{
ProductID = key,
Quantity = values.Sum(p => p.Quantity),
Options = values.SelectMany(p => p.Options).ToList()
}).ToList();

所以 resultList<Product>包含关于 ProductID 合并的产品.

关于c# - 如何使用 LINQ 合并树(和总计数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26578427/

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