这可能是我错过的傻事,但我尝试连接整数列表而不是用它们求和:
integerArray.Aggregate((accumulator, piece) => accumulator+"," + piece)
编译器抱怨参数错误。有没有一个灵活的方法来做到这一点,而不必经历一个循环?
答案 0 :(得分:65)
哪个版本的.NET?在4.0中,您可以使用string.Join(",",integerArray)
。在3.5中,我很想使用string.Join(",",Array.ConvertAll(integerArray,i=>i.ToString()));
(假设它是一个数组)。否则,使成为数组,或使用StringBuilder
。
答案 1 :(得分:15)
您获得的错误是因为您没有使用允许您指定种子的Aggregate
覆盖。如果未指定种子,则使用集合的类型。
integerArray.Aggregate("", (accumulator, piece) => accumulator + "," + piece);
答案 2 :(得分:14)
您可能想要使用String.Join。
string.Join(",", integerArray.Select(i => i.ToString()).ToArray());
如果您使用的是.Net 4.0,则无需经历重新启动数组的麻烦。并且可以做到
string.Join(",", integerArray);
答案 3 :(得分:2)
只是为@ Marc的
添加另一种选择var list = string.Join( ",", integerArray.Select( i => i.ToString() ).ToArray() );