Início > C# > Trabalhando com Linq e C# (Parte 1)

Trabalhando com Linq e C# (Parte 1)

Olá, irei falar um pouco de linq no C# , o Linq( Language Integrated Query) em resumo é um conjunto de recursos que abstraem o mecanismo que um aplicativo utiliza para consultar dados a partir do próprio código da aplicação, sua sintaxe possui algumas semelhanças com a SQL (Structured Query Language) e as suas vantagens também. Você pode mudar uma a estrutura subacente dos dados em consulta sem precisar alterar o código que a realiza.Você deve estar ciente  de que, embora a Linq pareça semelhante à SQL, ela é muito .. muito mais flexível e pode tratar uma variedade mais ampla de estruturas de dados lógicas.

Mais detalhes sobre o Linq:  http://msdn.microsoft.com/en-us/netframework/aa904594.aspx

Agora vamos alguns exemplos, de como utilizar o linq; Primeiramente crie um projeto do tipo Windows form, e dentro do projeto crie uma classe chamada pessoa, configure a classe com as seguintes propriedades, Nome, Sobrenome e Idade, conforme exemplo abaixo:

class Pessoa

{

        public string Nome { get; set; }

        public string SobreNome { get; set; }

        public int Idade { get; set; }

}

 

Agora dentro do form1, iremos criar um método que irá carregar essas propriedades, lembrando que este carregamento é apenas um exemplo, em um mundo real vc poderia utilizar o linq para acesso ao banco de dados e etc.

private static List<Pessoa> CarregarLista()

{

   List<Pessoa> listaPessoa = new List<Pessoa>()

   {

     new Pessoa(){Nome = "José", SobreNome = "João", Idade = 10},

     new Pessoa(){Nome = "João", SobreNome = "1", Idade = 12},

     new Pessoa(){Nome = "Maria", SobreNome = "amem", Idade = 23},

     new Pessoa(){Nome = "Augusto", SobreNome = "Borges", Idade = 24}

   };

   return listaPessoa;

}

 

No método acima estamos criando um uma lista de pessoas e inserindo 4 valores a lista. Agora iremos criar um método para selecionar os valores desta lista:

private static void SelecionarDados()

{

   List<Pessoa> listaPessoa = CarregarLista();
  
IEnumerable<string> pessoaNome = listaPessoa.Select(pessoa => pessoa.Nome);

   foreach(string nome in pessoaNome)

   {

      MessageBox.Show(nome);

   }

}

 

O método Select (extensão da intercade IEnumerble<T>) permite recuperar dados especifico de nossa coleção, no nosso caso o campo Nome, os parametros que estão no método (Lambda Expression) é um outro método que seleciona a linha da coleção listaPessoa e retorna os dados selecionados a partir da linha corrente. Como o foco não é falar de uma expressão lambda, não vou entrar em muitos detalhes.  Neste exemplo o método Select esta retornando uma coleção Enumerable (utilizado para estruturas como foreach), se desejar que o enumerador retorne múltiplos itens da lista, como o nome e sobrenome, há  várias formas, veja algumas abaixo :

1-) Concatenando os valores;

IEnumerable<string> pessoaNomeSobrenome = listaPessoa.Select(pessoa => pessoa.Nome + " " + pessoa.SobreNome);

  foreach (string nomeCompleto in pessoaNomeSobrenome)

{

    MessageBox.Show(nomeCompleto);

}

 

2-) Criando uma lista de retorno do tipo de pessoa;

IEnumerable<Pessoa> pessoaNomeSobrenome2 = listaPessoa.Select(pessoa => new Pessoa

{

   Nome = pessoa.Nome,

   SobreNome = pessoa.SobreNome

});

 

foreach (Pessoa nomeSobrenome in pessoaNomeSobrenome2)

{                                MessageBox.Show(nomeSobrenome.Nome+""+nomeSobrenome.SobreNome);

}

 

A segunda opção talvez seja a melhor solução para este caso, uma vez que conforme pode ser visto não estamos trabalhando com uma coleção de string e sim uma coleção da classe Pessoa, porém você ainda pode utilizar um tipo anônimo em vez de definir um novo tipo para uma única operação ( new Pessoa), veja um exemplo abaixo:

var pessoaNomeSobreNome3 = listaPessoa.Select(pessoa => new { Nome = pessoa.Nome, SobreNome = pessoa.SobreNome });

 

Agora, utilizamos a palavra chave var para definir o tipo da coleção enumerável. O tipo dos objetos é anônimo, portanto não podemos especificar um tipo para os objetos na coleção.

 Bom, por hoje é isso, em breve irei colocar mais tópicos com exemplos de como Ordenar, Agrupar, Filtrar e fazer junção de dados com o Linq, por enquanto deixo aqui alguns exemplos do linq do site MSDN -> http://msdn.microsoft.com/en-us/vcsharp/aa336746.aspx

Abraço e bom final de semana…

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: