Qual é a maneira mais limpa de criar uma lista separada por vírgula de valores de string a partir de uma 'Listaou
IEnumerable
O String.Join(...)
opera em uma string[]string[]
então pode ser complicado de trabalhar quando tipos como IList<string>
ou IEnumerable<string>
não podem ser facilmente convertidos em uma array de string.
**.NET 4+***
IList<string> strings = new List<string>{"1","2","testing"};
string joined = string.Join(",", strings);
**Detalhes & Soluções Pre .Net 4.0***
IEnumerable
IEnumerable<string> strings = ...;
string[] array = strings.ToArray();
It'é fácil o suficiente para escrever o método de ajuda equivalente, se você precisar:
public static T[] ToArray(IEnumerable<T> source)
{
return new List<T>(source).ToArray();
}
Então chama-lhe assim:
IEnumerable<string> strings = ...;
string[] array = Helpers.ToArray(strings);
Você pode então chamar string.Join
. Claro, você não't tenha para usar um método de ajuda:
// 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());
Este último, no entanto, é um bocadinho bocado bocado bocado :)
Esta é provavelmente a maneira mais simples de fazê-lo, e bastante performante também - há outras questões sobre exatamente como é a performance, incluindo (mas não limitado a) esta.
A partir de .NET 4.0, há mais sobrecargas disponíveis em string.Join`, então você pode realmente apenas escrever:
string joined = string.Join(",", strings);
Muito mais simples :)
Você pode utilizar .ToArray()
em Lists
e IEnumerables
, e então utilizar String.Join()
como você quiser.