.NET 4+
IList<string> strings = new List<string>{"1","2","testing"};
string joined = string.Join(",", strings);
Detalle y soluciones Pre .Net 4.0
IEnumerable<string>
se puede convertir en una matriz de cadenas muy fácilmente con LINQ (.NET 3.5):
IEnumerable<string> strings = ...;
string[] array = strings.ToArray();
Es bastante fácil escribir el método auxiliar equivalente si necesita:
public static T[] ToArray(IEnumerable<T> source)
{
return new List<T>(source).ToArray();
}
Entonces llámalo así:
IEnumerable<string> strings = ...;
string[] array = Helpers.ToArray(strings);
Entonces puedes llamar string.Join
. Por supuesto, no tiene que usar un método auxiliar:
// C# 3 and .NET 3.5 way:
string joined = string.Join(",", strings.ToArray());
// C# 2 and .NET 2.0 way:
string joined = string.Join(",", new List<string>(strings).ToArray());
Sin embargo, este último es un poco bocado :)
Es probable que esta sea la forma más sencilla de hacerlo, y también bastante eficaz: hay otras preguntas sobre exactamente cómo es el rendimiento, incluido (pero no limitado a) este .
A partir de .NET 4.0, hay más sobrecargas disponibles string.Join
, por lo que puede escribir:
string joined = string.Join(",", strings);
Mucho más simple :)
public static TSource[] ToArray<TSource>(this IEnumerable<TSource> source)