5

如何使用 LINQ Sum 方法对字符串数组求和?

我的字符串看起来像:"1,2,4,8,16"

我试过了:

string myString = "1,2,4,8,16";
int number = myString.Split(',').Sum((x,y)=> y += int.Parse(x));

但它说不Parse能源类型int来输入?

我不想使用foreach循环来总结这些数字。

4

3 回答 3

21

你打错电话了Sum()

Sum()接受一个将单个元素转换为数字的 lambda:

.Sum(x => int.Parse(x))

或者,更简单地说,

.Sum(int.Parse)

这仅适用于版本 4 或更高版本的 C# 编译器(无论平台版本如何)

于 2013-01-10T17:33:58.020 回答
4

代替

int number = myString.Split(',').Sum((x,y)=> y += int.Parse(x));

采用

int number = myString.Split(',').Sum(x => int.Parse(x));

它将解析myString.Split(',')int 的每个元素并添加它们。

于 2013-01-10T17:34:19.223 回答
0
var value = "1,2,4,8,16".Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
                        .Select (str => int.Parse(str))
                        .Sum ( ) ;

Console.WriteLine( value ); // 31
于 2013-01-10T17:38:30.943 回答