C#找到2个列表之间的最低价格

时间:2017-01-14 19:43:30

标签: c# asp.net-mvc

我目前正在研究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'字符串也相同。

我将如何做到这一点?

感谢。

1 个答案:

答案 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();