gpt4 book ai didi

c# - Linq 查询返回最便宜的产品,前提是它是唯一的

转载 作者:行者123 更新时间:2023-12-02 12:38:03 25 4
gpt4 key购买 nike

我有一个产品列表,以及价格。我只想购买最便宜的,只要它独一无二。如果有多个产品具有相同最低价格,则不应返回任何。

在下面的示例中,对于 uniqProductList,查询应返回 BestOne,而对于 dupProductList,不应返回任何产品。

如何编写 Linq 查询?

public class Product
{
public string Name { get; set; }
public decimal Price { get; set; }
public DateTime ExpiryDate { get; set; }
}

List<Product> uniqProductList = new List<Product>() {
new Product { Name = "GoodOne", Price = 12M },
new Product { Name = "NiceOne", Price = 12M },
new Product { Name = "ExpensiveOne", Price = 15M },
new Product { Name = "BestOne", Price = 9.99M }
};

List<Product> dupProductList = new List<Product>() {
new Product { Name = "GoodOne", Price = 12M },
new Product { Name = "NiceOne", Price = 12M },
new Product { Name = "ExpensiveOne", Price = 15M },
};

最佳答案

如果您想在单个查询中执行此操作,这是一种方法:

Product result = uniqProductList
.GroupBy(x => x.Price)
.OrderBy(x => x.Key)
.Take(1)
.FirstOrDefault(x => x.Count() == 1)?
.FirstOrDefault();
  • 按价格对结果进行分组
  • 按价格排序,最便宜的为第一个结果
  • 取第一个结果,因为我们对其他结果不感兴趣
  • 如果组中只有一个结果,则返回分组
  • 返回值

不过,几乎可以肯定还有其他更快的方法。

关于c# - Linq 查询返回最便宜的产品,前提是它是唯一的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59855147/

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