【问题标题】:Sum Of Values In a list C# (.Net 2.0)列表中的值总和 C# (.Net 2.0)
【发布时间】:2013-11-09 10:16:13
【问题描述】:

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

我的名单是

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

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

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

这是我在其中获取值的方式

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

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

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

【问题讨论】:

    标签: c# .net list .net-2.0


    【解决方案1】:
    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();
    

    【讨论】:

    • 它是 2.0,所以我们不能使用 Sum 等,因为它需要 Linq 并且可以在 4.0 中使用 Linq :(
    • 它正在工作,但我如何打印标签中的前 3 个值。 PLZ:/对不起,我是Noooooooooob
    • 你有定义@CodingNoob的标签吗?如果是这样,您可以在foreach 循环中执行label1.text = d.ToString();
    • 我的标签就像 lbl_first & lbl_second 等。
    • 您已经接受了答案...所以,您不再需要帮助了吗?我已经用你的标签编辑了答案......你可以忽略控制台部分。
    【解决方案2】:

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

    List<double> Amount = new List<double>();
    
    var sum = 0.0;
    
    Amount.ForEach(x => sum += x);
    

    【讨论】:

    • 它成功了:D 谢谢老兄。你能告诉我一些关于从列表中获取前 3 个值的信息吗?@Alessandro D'Andria
    【解决方案3】:

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

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

    【讨论】:

    • 我认为我们不能在 windows 窗体中使用 linq。我无法添加参考
    • 对于linq项目必须是vs4.0或以上。
    • 哦,我想我忘了说我使用的是 2.0
    【解决方案4】:
    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
    

    【讨论】:

    • 我相信 Sum 需要一些我的 windows 窗体中没有的程序集引用
    • @CodingNoob using System.Linq;
    • 我忘了说我使用的是 .Net Framework 2.0 & 对于 linq 它需要 4.0
    【解决方案5】:
    double sales = Double.parseDouble(split_values[1]);//it's convert to double
    Amount.add(sales);//value is added
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-28
      • 2013-09-20
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多