c#-如何从列表中获取值的总和?

c#-如何从列表中获取值的总和?,c#,asp.net,C#,Asp.net,我想从列表中得到值的总和 例如:我在列表中有4个值 1 2 3 4我想对这些值求和,并将其显示在标签中 代码: protectedvoid btnCalculate\u单击(对象发送方,事件参数e) { 字符串星期一; 文本框txtMonTot; List monTotal=新列表(); if(应用程序[“mondayValues”]!=null) { 将monValues=应用程序[“mondayValues”]列为列表; 对于(int i=0;i您可以使用LINQ进行此操作 var list

我想从列表中得到值的总和

例如:我在列表中有4个值 1 2 3 4我想对这些值求和,并将其显示在标签中

代码:

protectedvoid btnCalculate\u单击(对象发送方,事件参数e)
{
字符串星期一;
文本框txtMonTot;
List monTotal=新列表();
if(应用程序[“mondayValues”]!=null)
{
将monValues=应用程序[“mondayValues”]列为列表;

对于(int i=0;i您可以使用LINQ进行此操作

var list = new List<int>();
var sum = list.Sum();

您可以使用
Sum
函数,但必须将字符串转换为整数,如下所示:

int total = monValues.Sum(x => Convert.ToInt32(x));
使用

List foo=new List();
foo.添加(“1”);
foo.添加(“2”);
foo.添加(“3”);
foo.添加(“4”);
Write(foo.Sum(x=>Convert.ToInt32(x));
印刷品:

十,

这个怎么样

List<string> monValues = Application["mondayValues"] as List<string>;
int sum = monValues.ConvertAll(Convert.ToInt32).Sum();
List monValues=应用程序[“mondayValues”]作为列表;
int sum=monValues.ConvertAll(Convert.ToInt32.sum();

list.Sum()。由于此注释正在被升级,应该提到的是,正如其他人所评论的,您需要对System.Linq的引用才能使用list.Sum()。如果必须对其进行求和,那么字符串列表为什么要放在第一位?您可能不需要lambda
Sum(Convert.ToInt32)
为了澄清,@Sayse没有错,语法是有效的。问题是Sum有两个重载,一个接受返回小数的func,另一个接受返回可为null的func。使用方法组语法,它无法判断哪个重载Convert.ToDecimal匹配。lambda语法解决了Convert的问题.ToDecimal在另一个总是返回小数的方法中。确保使用System.Linq;
添加
。我正要问sameI,真的不明白为什么这个答案应该被否决!也许他读了这个问题并应用了第2条规则
int total = monValues.Sum(x => Convert.ToInt32(x));
 List<string> foo = new List<string>();
 foo.Add("1");
 foo.Add("2");
 foo.Add("3");
 foo.Add("4");

 Console.Write(foo.Sum(x => Convert.ToInt32(x)));
List<string> monValues = Application["mondayValues"] as List<string>;
int sum = monValues.ConvertAll(Convert.ToInt32).Sum();