gpt4 book ai didi

c# - 如何使用 Linq 查找 Min() 并将 Min 元素设置为 0

转载 作者:太空宇宙 更新时间:2023-11-03 17:14:52 25 4
gpt4 key购买 nike

我有以下内容

        List<decimal> Prices = new List<decimal>();
Prices.Add(999.99M);
Prices.Add(19.99M);
Prices.Add(2.75M);
Prices.Add(9.99M);
Prices.Add(2.99M);
Prices.Add(2.99M);
Prices.Add(99.99M);

我可以使用 Linq 来获得最小值

        decimal Min = Prices.Min(r => r);

但是如何将当前列表中的最小值设置为 0 呢?

更新

如何处理两个最小的价格,例如 2.99 和 2.99,我只想将 1 设置为 0

最佳答案

        List<decimal> Prices = new List<decimal>();
Prices.Add((decimal)999.99);
Prices.Add((decimal)19.99);
Prices.Add((decimal)2.75);
Prices.Add((decimal)9.99);
Prices.Add((decimal)2.99);
Prices.Add((decimal)99.99);

decimal minimum = Prices.Min();
Prices = Prices.Select(price => price > minimum ? price : 0).ToList();

这会将所有等于最小值的价格设置为 0。

UPDATE

How can I deal with two smallest prices for example 2.99 and 2.99, I'd only want to set 1 to 0

好吧,当这个要求被添加到等式中时,@lazyberezovsky 的(暂时删除,现在未删除)解决方案是适合您的:

Prices[Prices.IndexOf(Prices.Min())] = 0;

关于c# - 如何使用 Linq 查找 Min() 并将 Min 元素设置为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20244710/

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