正如它所說:a + b
的結果是int
,但您希望它是一個char
。爲了得到它編譯你可以使用:
var res = reverse.Aggregate((a,b)=>(char) (a+b));
...但我不認爲這會做你想要什麼。
我建議你不要使用LINQ此下手:
private string Reverse(string strValue)
{
char[] chArray = strValue.ToCharArray();
Array.Reverse(chArray);
return new string(chArray);
}
注意,這不正常工作的事情等組合字符,代理對等
如果你真的想使用LINQ,你可以用做:
private string Reverse(string strValue)
{
return new string(strValue.Reverse().ToArray());
}
有沒有必要打電話Aggregate
。如果你真的想使它緩慢和使用字符串連接與Aggregate
(這將是爲O(n )),你可以做這樣的:
private string Reverse(string strValue)
{
return strValue.Reverse().Aggregate("", (str, c) => str + c);
}
以下是我們提供的字符串種子值,所以參數str
將是一個字符串,+
將字符串連接,而不是字符另外。
可以使用StringBuilder
使其更有效率:
private string Reverse(string strValue)
{
return strValue.Reverse()
.Aggregate(new StringBuilder(), (sb, c) => sb.Append(c))
.ToString();
}
...但我仍然不知道它是值得的......
爲什麼要這樣聚合它?我不明白。 – BoltClock