Existe uma maneira de pegar uma lista e convertê-la em uma string separada por vírgulas?
Eu sei que posso apenas fazer um loop e construir, mas de alguma forma eu acho que alguns de vocês são uma maneira mais legal de fazer isso?
Eu realmente quero aprender esses tipos de 'truques', então explique ou crie um link para a documentação sobre o método que você usa.
c#
collections
mrblah
fonte
fonte
Solução simples é
Eu usei agora mesmo no meu código, funcionando de forma fantástica.
fonte
fonte
Para cerca de um zilhão de soluções para uma versão um pouco mais complicada deste problema - muitos dos quais são lentos, com erros ou nem mesmo compilam - consulte os comentários do meu artigo sobre este assunto:
http://blogs.msdn.com/ericlippert/archive/2009/04/15/comma-quibbling.aspx
e o comentário StackOverflow:
O desafio de Eric Lippert de "trocadilhos", melhor resposta?
fonte
Para maior frieza, eu faria disso um método de extensão em IEnumerable <T> para que funcione em qualquer IEnumerable:
Use-o da seguinte maneira:
fonte
return string.Join(delim, self);
Parece razoavelmente rápido.
fonte
Minha entrada "inteligente":
Só não descobri como adicionar condicionalmente a vírgula.
fonte
Select
com efeitos colaterais no lambda. Neste caso, você nem mesmo está usandoy
, portanto,Select
é essencialmente apenas umforeach
- então escreva como tal.Select
comoforeach
vai passado "interessante" e para, assim, "abuso". Uma abordagem mais interessante aqui seria usarEnumerable.Aggregate
comStringBuilder
um valor de semente - tente isso.você pode usar a biblioteca System.Linq; É mais eficiente:
fonte