0

我需要在 linq 中添加项目的数组列表。下面是我的示例代码。

string[] _str = ("1.21,2.02,3.14,4.951,5.156").ToString().Split(',');
double Sum = 0.0;
for (int i = 0; i < _str.Length; i++)
{
  if (_str[i].ToString() != ",")
     Sum = Sum + Convert.ToDouble(_str[i]);
}

我在 for 循环中完成了上面的代码,以获取数组列表中所有项目的总和。我需要在 linq 中转换相同的操作。请任何人帮我解决这个问题,因为我是 linq 的新手。

提前致谢。

4

4 回答 4

3

使用Sum方法:

string[] _str = "1.21,2.02,3.14,4.951,5.156".Split(',');
var result = _str.Sum(e => Double.Parse(e));
于 2012-09-11T10:45:48.803 回答
1
string[] _str =  {"1.21","2.02","3.14","4.951","5.156"};
double Sum = 0.0;
for (int i = 0; i < _str.Length; i++)
{
    double.TryParse(_str[i],out val)
}

但是如果你这样做是为了学习 linq

string[] _str = {"1.21","2.02","3.14","4.951","5.156"};
_str.Sum(x => 
    {  
       double val ; 
       if(double.TryParse(x, out val)){
         return val;
       }
       return 0.0;
    });

如果您确定字符串将始终包含有效的数字字符串。然后你可以使用 double.Parse(x)。

于 2012-09-11T10:55:52.787 回答
0

你可以试试

string[] _str = "1.21,2.02,3.14,4.951,5.156".Split(',');
double Sum = _str.Sum(x=>Convert.ToDouble(x));
于 2012-09-11T10:46:27.990 回答
0

尝试...

var _str = _str = ("1.21,2.02,3.14,4.951,5.156").ToString().Split(',');
var _sum = Array.ConvertAll<String, Double>(_str, Double.Parse).Sum();

另一个班轮,带有方法链接示例...

var _sum = "1.21,2.02,3.14,4.951,5.156".Split(',').Sum(x => Double.Parse(x));
于 2012-09-11T10:51:16.857 回答