Início > C# > Série: Testes de Perfomance – Ordenando coleções de String (Parte 1)

Série: Testes de Perfomance – Ordenando coleções de String (Parte 1)

28 de fevereiro de 2010 Deixe um comentário Go to comments

Boa tarde,

Em umas das minhas brincadeiras noturnas comecei a fazer vários testes de performance utilizando algumas das mais conhecidas estrutura de dados ( eu sei tudo isso esta documentado no MSDN, mas porque não testar para ter a plena certeza do que estamos usando ?!), estes testes não querem dizer o que você deve utilizar, pois isto é muito relativo e atrelado ao cenário que você está trabalhando, a intenção destes testes (artigos) é criar alguns cenários simples aplicar algumas das soluções disponíveis no .Net Framework e verificar seus respectivos resultados.

                Então iremos começar com um cenário simples: Você possui uma coleção de string, onde cada item é o nome de uma pessoa, e os nomes estão desordenados, no entanto para apresentação dos resultados você deseja ordenar os nomes. O .Net Framework possui várias coleções com um método de classificação pronto (ufa!), por isso vamos testar algumas das mais conhecidas:

Para efetuar os testes, eu crie um Console Application, os dados que irei utilizar nas coleções estão na tabela abaixo:

Dados

Coleção de String:

Nomes de Pessoas

Nelson

Claudia

Pedro

Joaquim

João

Jose

Maria

Judas

 

 

//Usando Array

 Utilizando um ArrayList: O ArrayList é uma das coleções que possui o método Sort() que irá ordenar de forma crescente nossa coleção de strings.

Veja um exemplo de sua utilização:

class Program

    {

        static void Main(string[] args)

        {

            string[] a = new string[]

            {

                "Nelson",

                "Claudia",

                "Pedro",

                "Joaquim",

                "João",

                "Jose",

                "Maria",

                "Judas"

            };

 

            Array.Sort(a);

            foreach (string s in a)

            {

                Console.WriteLine(s);

            }

 

            Console.ReadLine();

 

        }

    }

 

 

 O resultado será:

·         Claudia

·         João

·         Joaquim

·         Jose

·          Judas

·          Maria

·          Nelson

·          Pedro

//Usando Linq

Utilizando o Linq: O Linq (Language-Integrated Query) é um dos recursos do Framework para facilitar a manipulação em um conjunto de dados. No linq em vez de utilizarmos o Sort (Array) iremos usar o método Orderby.

Veja um exemplo de sua utilização:

class Program

    {

        static void Main(string[] args)

        {

            string[] a = new string[]

            {

                "Nelson",

                "Claudia",

                "Pedro",

                "Joaquim",

                "João",

                "Jose",

                "Maria",

                "Judas"

            };

 

            var desc = from s in a

                       orderby s descending

                       select s;

 

            foreach (string c in desc)

            {

                Console.WriteLine(c);

            }

 

            Console.ReadLine();

 

        }

    }

 

 

 

Resultado:

·         Pedro

·         Nelson

·         Maria

·         Judas

·         Jose

·          Joaquim

·          João

·          Claudia

Nota: Repare que o resultado da nossa ordenação foi de Z – A e não de A-Z.  O linq aqui esta usando uma expressão de consulta que é uma enumeração das cadeias de caracteres ordenados de Z-A.

//Usando List

Utilizando o List<T>: O List<T>  é um dos  tipos de coleções mais famosas do Framework , o T representa que ele trabalha de forma genérica evitando assim o uso de Boxing e Unboxing.

    class Program

    {

        static void Main(string[] args)

        {

 

            List<string> l = new List<string>()

            {

                    "Nelson",

                    "Claudia",

                    "Pedro",

                    "Joaquim",

                    "João",

                    "Jose",

                    "Maria",

                    "Judas"

            };

            l.Sort();

            foreach (string s in l)

            {

                Console.WriteLine(s);

            }

 

            Console.ReadLine();

 

        }

    }

 

O resultado será:

·         Claudia

·         João

·         Joaquim

·         Jose

·          Judas

·          Maria

·          Nelson

·          Pedro

 Continua Clique aqui…

Categorias:C#
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: