using System.Collections.Generic;
public static void Main()
var discount1 = new Discount
ProductIds = new List<long>() { 100, 103, 104, 105 }
var discount2 = new Discount
ProductIds = new List<long>() { 100, 102 , 103, 104 }
var discounts = new List<Discount>() { discount1, discount2 } ;
var productDiscountDictionary = discounts
.GroupBy(p => p.ProductId)
p => p.Max(d => d.Amount));
foreach(var productDiscountKeyValue in productDiscountDictionary)
Console.WriteLine($"Product {productDiscountKeyValue.Key}, Amount: {productDiscountKeyValue.Value}");
public decimal Amount {get ; set;}
public List<long> ProductIds {get; set;}