08/10/2012 Development / asp.net

Vou colocar 2 soluções que fazem a mesma coisa.

A primeira é uma maneira mais tradicional e mais didática de ler. Usando ForEach, a segunda usando Linq.

public string ParseQueryString(params KeyValuePair<string, object>[] parameters)
        {

            ArrayList sb = new ArrayList();
           
            foreach (var key in parameters){
                sb.Add(key.Key + "=" + key.Value);
            }
            return String.Join("&", sb.ToArray());

Ok! Funciona perfeiramente, percorre a lista KeyValuePair e vai adicionando a chave e o valor num array e depois fazemos o join!

A segunda utilizando Linq - Ajuda do brotherzaço - Vinícius Rosa!

return string.Join("&", parameters.Select(x => string.Concat(x.Key,"=", x.Value.ToString())));

A cada iteração do x, ele concatena a key e o valor no próprio x, retornando assim uma lista e depois fazemos o join!

Eu prefiro a segunda pelo tamanho da escrita do código, mas a primeira fica mais fácil caso alguém venha fazer manutenção no código.

É isso, espero que sirva!