我得到一个小数的折扣百分比,我有IEnumerable<decimal>
作为价格列表。我想计算linq中每个的折扣价。
IEnumerable<decimal> prices = new IEnumerable<decimal>() { 100, 200, 300};
decimal discountPercentage = 20;
拍我一些想法,我很想尝试任何事情。
答案 0 :(得分:3)
希望这有帮助
IEnumerable<decimal> prices = new List<decimal>() { 100, 200, 300};
decimal discountPercentage = 20;
var discounted = prices.Select(x=>x-x/100*discountPercentage).ToList();
答案 1 :(得分:3)
如果这是折扣价格,您必须从您的价格中减去折扣。
因此MasterVolume
的{{1}}折扣会产生20%
的折扣价。
100
答案 2 :(得分:1)
您无法初始化IEnumerable
。请改用List
new List<decimal> { 100, 200, 300 }.
Select(value => value * (100 - discountPercentage) / 100);
答案 3 :(得分:0)
var discountPercentage = 20;
var discounted = prices.Select(p => p -= p * (discountPercentage / 100)).ToArray();
答案 4 :(得分:0)
使用选择和列出结果。
prices.Select(value => value - value * discountPercentage /100).ToList();
答案 5 :(得分:0)
请注意,您无法实例化IEnumerable,因为它是一个接口,而不是具体的类。因此,请使用List并为其添加值。
建议的答案,
IEnumerable<decimal> prices = new List<decimal>() { 100, 200, 300 };
decimal discountPercentage = 20;
// calculate prices after applying the discount via LINQ
prices = prices.Select(p => (100 - discountPercentage) / 100 * p);
// displaying for testing purposes
foreach (decimal price in prices)
{
Console.WriteLine(price);
}
这将显示计算出的折扣价格,如下所示
80.0 160.0 240.0