.NET 4+
IList<string> strings = new List<string>{"1","2","testing"};
string joined = string.Join(",", strings);
Detail & Pre .Net 4.0 Solutions
IEnumerable<string>
può essere convertito in un array di stringhe molto facilmente con LINQ (.NET 3.5):
IEnumerable<string> strings = ...;
string[] array = strings.ToArray();
È abbastanza facile scrivere il metodo di supporto equivalente se è necessario:
public static T[] ToArray(IEnumerable<T> source)
{
return new List<T>(source).ToArray();
}
Quindi chiamalo così:
IEnumerable<string> strings = ...;
string[] array = Helpers.ToArray(strings);
È quindi possibile chiamare string.Join
. Naturalmente, non è necessario utilizzare un metodo di supporto:
// 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());
Quest'ultimo è un po 'un boccone però :)
Questo è probabilmente il modo più semplice per farlo, e anche abbastanza performante - ci sono altre domande su come sia esattamente la performance, incluso (ma non limitato a) questo .
A partire da .NET 4.0, ci sono più sovraccarichi disponibili in string.Join
, quindi puoi semplicemente scrivere:
string joined = string.Join(",", strings);
Molto più semplice :)
public static TSource[] ToArray<TSource>(this IEnumerable<TSource> source)