Desenvolvimento - C#

Diversão com LINQ e Strings

Diferente do que a maioria conhece como LINQ To SQL, LINQ To Entities, podemos utilizar LINQ para várias outras operações como, percorrer controles de um formulário, leitura de diretórios, DataSet, Xml, fora outros providers criados como LINQ To Twitter, LINQ To Active Directory e muito mais que podem ser encontrados no CodePlex.

por Márcio Fábio Althmann



Para quem não sabe o que é o LINQ ou tem dúvidas, clique aqui para visitar a página do produto no MSDN.

Diferente do que a maioria conhece como LINQ To SQL, LINQ To Entities, podemos utilizar LINQ para várias outras operações como, percorrer controles de um formulário, leitura de diretórios, DataSet, Xml, fora outros providers criados como LINQ To Twitter, LINQ To Active Directory e muito mais que podem ser encontrados no CodePlex.

Vou mostrar aqui hoje como fazer uma operação simples com uma string, no caso a string é o meu nome completo “Márcio Fábio Althmann”, o primeiro teste vamos separar as palavras, utilizando um espaço como caracter de separação. Em seguida vamos percorrer o resultado escrevendo na tela de um Console Application para testar se está tudo funcionando.

   1: var nome = "Márcio Fábio Althmann";
   2: 
   3: var palavras = from palavra in nome.Split(" ")
   4:                select palavra;
   5: 
   6: 
   7: foreach (var palavra in palavras)
   8: {
   9:     Console.WriteLine(palavra);
  10: }

Resultado.

   1: Márcio
   2: Fábio
   3: Althmann

Agora eu quero que a lista de palavras seja ordenada pelo número de caracteres, da menor palavra para a maior, veja o código abaixo.

   1: var palavras = from palavra in nome.Split(" ")
   2:                orderby palavra.Length
   3:                select palavra;

Resultado.

   1: Fábio
   2: Márcio
   3: Althmann

O inverso também é simples, agora vamos mostrar as palavras ordenadas da maior palavra pela menor, adicionando a palavra chave descending na cláusula orderby.

   1: var palavras = from palavra in nome.Split(" ")
   2:                orderby palavra.Length descending 
   3:                select palavra;

Resultado.

   1: Althmann
   2: Márcio
   3: Fábio

Essefoi um pequeno exemplo do que podemos fazer com strings utilizando o LINQ, bons estudos e aproveitem todo o poder que o LINQ oferece.

Abraços.

Márcio Fábio Althmann

Márcio Fábio Althmann