LINQ:如何将整数列表连接成逗号分隔的字符串?

时间:2010-05-26 23:32:12

标签: c# linq aggregate

这可能是我错过的傻事,但我尝试连接整数列表而不是用它们求和:

integerArray.Aggregate((accumulator, piece) => accumulator+"," + piece)

编译器抱怨参数错误。有没有一个灵活的方法来做到这一点,而不必经历一个循环?

4 个答案:

答案 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() );