我目前正在研究MVC Web应用程序,作为大学项目的一部分。我从2个不同的Web API微服务中检索了2套“产品”,它们都具有完全相同的“产品”但价格不同,它们都使用以下数据模型:
public int BrandId { get; set; }
public string BrandName { get; set; }
public int CategoryId { get; set; }
public string CategoryName { get; set; }
public string Description { get; set; }
public string Ean { get; set; }
public int Id { get; set; }
public bool InStock { get; set; }
public string Name { get; set; }
public double Price { get; set; }
我将两个API的结果存储在2个列表中,但需要一种比较和从最便宜的价格中提取产品的方法,然后将其存储在单独的列表中。
同样值得注意的是,两个API的'EAN'字符串也相同。
我将如何做到这一点?
感谢。
答案 0 :(得分:2)
假设Id
是两个API共有的唯一标识符,您可Concatenate
这两个列表,按Id
对其进行分组,按Price
对每个组进行排序,选择价格较低的那个:
var lowerPriced = allProductsOne.Concat(allProductsTwo)
.GroupBy(p => p.Id)
.Select(g => g.OrderBy(p => p.Price).First())
.ToList();