如何使用 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
循环来总结这些数字。
你打错电话了Sum()
。
Sum()
接受一个将单个元素转换为数字的 lambda:
.Sum(x => int.Parse(x))
或者,更简单地说,
.Sum(int.Parse)
这仅适用于版本 4 或更高版本的 C# 编译器(无论平台版本如何)
代替
int number = myString.Split(',').Sum((x,y)=> y += int.Parse(x));
采用
int number = myString.Split(',').Sum(x => int.Parse(x));
它将解析myString.Split(',')
int 的每个元素并添加它们。
var value = "1,2,4,8,16".Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
.Select (str => int.Parse(str))
.Sum ( ) ;
Console.WriteLine( value ); // 31