Aggregate函数定义为:
public static TSource Aggregate<TSource>(
this IEnumerable<TSource> source,
Func<TSource,?TSource,?TSource> func)
Run Code Online (Sandbox Code Playgroud)
(这里的文件)
注意你正在使用的string[]是一个IEnumerable<string>如此,TSource将会是一个string
因此,聚合函数的结果将是a string,这意味着你在里面使用的lambda函数Aggregate必须返回a string.在你的情况下,Convert.ToInt32返回一个Int32
知道你使用聚合的原因会很有趣.您不会想知道聚合函数的作用(您可以参考上面的链接),或者您不确定如何处理提供给函数的参数.
编辑:原始SS代码更改
所以,要解决"新问题":
C#
var test = new []{"0", "0", "0"};
var output = test.Aggregate((x, y) => $"{Convert.ToInt32(x) + Convert.ToInt32(y)}");
Run Code Online (Sandbox Code Playgroud)
EDIT2:使用值的总和返回INT32
C#
var test = new []{"1", "3", "2"};
var output = test.Sum(t => Convert.ToInt32(t));
Run Code Online (Sandbox Code Playgroud)