如何使用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
循环对这些数字求和。
答案 0 :(得分:21)
你误打Sum()
。
Sum()
使用lambda将单个元素转换为数字:
.Sum(x => int.Parse(x))
或者更简单地说,
.Sum(int.Parse)
这仅适用于C#编译器的版本4或更高版本(无论平台版本如何)
答案 1 :(得分:4)
而不是
int number = myString.Split(',').Sum((x,y)=> y += int.Parse(x));
使用
int number = myString.Split(',').Sum(x => int.Parse(x));
将myString.Split(',')
的每个元素解析为整数并添加它们。
答案 2 :(得分:0)
var value = "1,2,4,8,16".Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
.Select (str => int.Parse(str))
.Sum ( ) ;
Console.WriteLine( value ); // 31