假设我有这些类(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();
所以 result
是 List<Product>
包含关于 ProductID
合并的产品.
关于c# - 如何使用 LINQ 合并树(和总计数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26578427/