C#Linq查询从整数计算百分比

时间:2013-11-25 11:58:54

标签: c# linq

Country TotalSales
UK          2512793.05
USA         119176.75
AUST    83599.25
GERM    45613.75
IREL    43352.50
SWED    32955.75

然后我有:

var list = new List<int> { 2512793, 119176, 83599, 45613, 43352 };

如何从上面的列表转换为百分比列表。请指教。

E.G:{45%,20%,15%,12%,8%}

2 个答案:

答案 0 :(得分:2)

将列表转换为小数列表,并使用以下内容:

var list = new List<decimal> { 2512793, 119176, 83599, 45613, 43352 };
decimal sum = list.Sum();
var perc = list.Select(x => (x / sum) * 100);

或者,您可以将每个值转换为十进制。

或者作为@James指出,如果您需要输出该值,则无需乘以100。

var perc = list.Select(x => x / sum);
Console.WriteLine(perc.FirstOrDefault().ToString("P")); // Output the first value

答案 1 :(得分:0)

你可以尝试

  var list = new List<int> {2512793, 119176, 83599, 45613, 43352 };
  var percentage1 = list.Select(ele => (ele * 100) / list.Sum());