Pergunta

O que eu estou procurando é uma base equivalente de Array::join() de JavaScript em que você passar em um caractere separador e usos que, em sua seqüência de retorno de todos os subscritos. Eu certamente poderia escrever minha própria função usando um StringBuilder ou outros enfeites, mas deve ser algo embutido no .NET BCL.

EDIT: Disposição de qualquer , não necessariamente string ou char. Eu prefiro o método para ToString() simplesmente chamada em cada object subscrito. String.Join() é grande, exceto que você passá-lo uma matriz de strings.

Foi útil?

Solução

Se a matriz contém cadeias, você pode apenas usar String.Join() . Se a matriz não contém cordas, você vai precisar de algo um pouco mais complicado para que você possa lidar com o processo de conversão ou de conversão para cada item que ele contém.

Update: Usando @ código de JaredPar como base para um exemplo mais genérico:

char sep = GetSeparatorChar();
object[] toJoin = GetToJoin();
string joined = toJoin.Aggregate((x,y) => x.ToString()+sep.ToString()+y.ToString());

Obviamente você poderia fazer qualquer coisa que você queria x e y nesse exemplo para obter a seqüência de olhar como você queria.

Outras dicas

Se String.Join não fazer isso por você - por exemplo, você tem um IEnumerable<string> em vez de um string[] ou você tem uma coleção de algum outro tipo, consulte esta pergunta anterior .

Eu sou claro se ou não você está juntando um conjunto de caracteres ou strings.

For Strings


char sep = GetSeparatorChar();
string[] toJoin = GetToJoin();
string joined = toJoin.Aggregate((x,y) => x+sep.ToString()+y);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top