2010-08-12 16 views

Respuesta

92

En .NET 2/3

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

o (en .NET 4,0)

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

no funciona si 'list' es una lista de enteros como se especifica en la pregunta. – Timwi

+0

@Timwi - en realidad, lo hace en .NET 4, sin embargo, olvidé el hecho de que ya no necesita una matriz, cualquier enumerable funcionará. – tvanfosson

+0

Sí, estaba mal informado. Downvote retractado. – Timwi

3

Es esto lo que está buscando?

// Can be int[], List<int>, IEnumerable<int>, ... 
int[] myIntegerList = ...; 

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

A partir de C# 4.0, el MumboJumbo adicional ya no es necesario, todo funciona de forma automática:

// Can be int[], List<int>, IEnumerable<int>, ... 
int[] myIntegerList = ...; 

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

De hecho, la lista debe ser 'IEnumerable' porque todos los demás contenedores (mencionados y no solo ellos) heredan' IEnumerable' y 'Select' es un método de' IEnumerable' – abatishchev

+0

@abatishchev: Los demás contenedores * implementan * 'IEnumerable' correcto El resto de lo que dices mal, especialmente la "lista debe ser' IEnumerable' ", pero también el" 'Seleccionar' es un método de' IEnumerable' "(e incluso si hubieras dicho' IEnumerable ', aún así estar equivocado). Es un método de extensión. – Timwi

+0

En realidad, incluso el seleccionar como cadena no es necesario ya que 'Unir (cadena, IEnumerable )' convertirá automáticamente cada elemento del enumerable en una cadena. – tvanfosson

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

Técnicamente, esta respuesta no produce el resultado esperado como se especifica en la pregunta ;-) – Timwi

+0

OK, he agregado el espacio extra .... –

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

y

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

¿Por qué el voto a favor? –

+0

su segunda declaración no tiene sentido. le dará una matriz de cadenas con un elemento. –

+0

@Scott tuvo una parantheses extra de mi prueba, corregida. –

Cuestiones relacionadas