1

我有一个列表,我想获取此列表的总和并希望将其显示在标签中

我的清单是

   List<double> Amount = new List<double>();

&它充满了整数值,我需要得到它的总和。

我真的不知道如何添加值。尝试了一些属性,如计算,总和,但它给出了语法错误,因为它不适用于此。

这就是我在其中获得价值的方式

 double sales = double.Parse(split_values[1]);
                    listBox2.Items.Add(sales);
                    Amount.Add(sales);

& 我需要在标签中显示输出

我还需要从该列表中获取前 3 个值,但直到我无法这样做。 .net 框架是 2.0

4

5 回答 5

2

如果您不能使用 LINQ,请尝试以下操作:

List<double> Amount = new List<double>();

var sum = 0.0;

Amount.ForEach(x => sum += x);
于 2013-11-09T10:30:41.937 回答
2
using System;
using System.Collections.Generic;
using System.Linq;            

var amount = new List<double>() { 2.5, 1.5, 3.5, 5.5 };
            var sum = amount.Sum();
            Console.WriteLine(sum);

            var highest3 = amount.OrderByDescending(a => a).Take(3);

            var i = 1;
            foreach (var d in highest3)
            {
                Console.WriteLine("{0} is position {1}",d,i);
                i++;
            }

            Console.ReadLine();

编辑:框架 2

var amount = new List<double>() { 2.5, 1.5, 3.5, 5.5 };
            var sum = 0.0d;
            foreach (var d in amount)
            {
                sum += d;
            }

            Console.WriteLine(sum);

            amount.Sort();
            amount.Reverse();

            lbl_first.Text = amount[0].ToString();
            lbl_second.Text = amount[1].ToString();
            lbl_third.Text = amount[2].ToString();

            var i = 1;
            foreach (var d in amount)
            {
                if (i > 3)
                    break;

                Console.WriteLine("{0} is position {1}",d,i);
                i++;
            }

            Console.ReadLine();
于 2013-11-09T10:33:27.647 回答
1
double sales = Double.parseDouble(split_values[1]);//it's convert to double
Amount.add(sales);//value is added
于 2013-11-09T10:32:28.033 回答
1

列表求和可以通过多种方式实现,这里是最简单的,Amount.Sum();(需要Linq)。

关于标签请求,我还没有完全理解你。

于 2013-11-09T10:19:09.227 回答
1
using System.Linq;

List<double> Amount = new List<double>() {1.0, 2.0, 3.0, 4.0};  
Console.WriteLine(Amount.Sum()); //10

var top3 = Amount.OrderByDescending(x => x).Take(3); // 4.0, 3.0, 2.0
于 2013-11-09T10:19:31.453 回答