关于c#:使用LINQ将列表转换为CSV字符串

Using LINQ to convert a list to a CSV string

我有一个整数列表,我想能够把它转换成一个字符串,每个数字用逗号分隔。

到目前为止,如果我的列表是:

1
2
3
4
5
1
2
3
4
5

我的预期产出是:

1
1, 2, 3, 4, 5

是否可以使用LINQ?

谢谢


在.NET 2/3中

1
var csv = string.Join(",", list.Select( i => i.ToString() ).ToArray() );

或(在.NET 4.0中)

1
var csv = string.Join(",", list );


这就是你要找的吗?

1
2
3
4
// Can be int[], List<int>, IEnumerable<int>, ...
int[] myIntegerList = ...;

string myCSV = string.Join(",", myIntegerList.Select(i => i.ToString()).ToArray());

从C 4.0开始,不再需要额外的Mubojumbo,它将自动工作:

1
2
3
4
// Can be int[], List<int>, IEnumerable<int>, ...
int[] myIntegerList = ...;

string myCSV = string.Join(",", myIntegerList);


1
string csv = String.Join(",", list.Select(i=> i.ToString()).ToArray());


1
String.Join(",", list); //in .NET 4.0

1
2
String.Join(",", list        
    .Select(i => i.ToString()).ToArray()) //in .NET 3.5 and below