2011-01-21 16 views

Respuesta

356
var result = string.Join(",", arr); 

Este utiliza la siguiente sobrecarga del string.Join:

public static string Join<T>(string separator, IEnumerable<T> values); 
+0

No es necesario pasar el argumento genérico explícita en este caso. Se deducirá. – leppie

+0

@leppie: Ya, solo encuentra eso. –

+5

Pre .NET 4 string.Join (",", Array.ConvertAll (arr, i => i.ToString())) – TPAKTOPA

99

.NET 4

string.Join(",", arr) 

.NET anterior

string.Join(",", Array.ConvertAll(arr, x => x.ToString())) 
+14

¡Gracias por la versión pre-.NET4! – kdenney

+0

acaba de darse cuenta de que no podía usar la versión .net 4 y no entendía por qué estaba teniendo un error hasta que vi su respuesta, gracias. –

5

Puede tener un par de métodos de extensión para hacer esta tarea más fácil:

public static string ToDelimitedString<T>(this IEnumerable<T> lst, string separator = ", ") 
{ 
    return lst.ToDelimitedString(p => p, separator); 
} 

public static string ToDelimitedString<S, T>(this IEnumerable<S> lst, Func<S, T> selector, 
              string separator = ", ") 
{ 
    return string.Join(separator, lst.Select(selector)); 
} 

Así que ahora simplemente:

new int[] { 1, 2, 3, 4, 5 }.ToDelimitedString(); 
4

Utilice LINQ Aggregate método para convertir matriz de enteros a una cadena separada por comas de salida

var intArray = new []{1,2,3,4}; 
string concatedString = intArray.Aggregate((a, b) =>Convert.ToString(a) + "," +Convert.ToString(b)); 
Response.Write(concatedString); 

será

1,2,3,4

Esta es una de la solución se puede utilizar si no tiene .net 4 instalado.

+0

Funciona mal debido a la concatenación de cadenas, aunque –

+0

sí, funcionará mal pero antes .NET 4.0 String.join solo toma una matriz de cadenas como parámetro. Así, en ese caso, también tenemos que convertir en cadena. Podemos usar ToString para realizar mejor, pero hay un problema de excepción nula –

8
int[] arr = new int[5] {1,2,3,4,5}; 

Puede utilizar LINQ para ello

String arrTostr = arr.Select(a => a.ToString()).Aggregate((i, j) => i + "," + j); 
Cuestiones relacionadas