Em nossa sequencia de posts sobre o LINQ, podemos falar sobre um tipo de pesquisa muito comum: o LIKE. Quando fazemos uma pesquisa numa tabela é comum utilizarmos comandos LIKE para comparar strings, um comando equivalente no LINQ é a utilização do Contains, StartsWith ou EndsWith.

Vamos a um exemplo prático.

Esta será a coleção completa da qual retiraremos outras subcoleções utiizando consultas LINQ.

//
// Coleção de Profissional onde faremos as pesquisas
// 
var todos = new Collection<Profissional>
 {
     new Profissional { Nome = "André Paulovich", Sexo = true, Equipe = ".Net"},
     new Profissional { Nome = "Ivan Paulovich", Sexo = true, Equipe = ".Net"},
     new Profissional { Nome = "Camila Campos", Sexo = false, Equipe = "Redação"},
     new Profissional { Nome = "Renato Lima", Sexo = true, Equipe = "Flex"},
     new Profissional { Nome = "Luciano Lima", Sexo = true, Equipe = ".Net"},
     new Profissional { Nome = "Luciana Perdigão", Sexo = false, Equipe = "Design"},
     new Profissional { Nome = "Daniele Almeida", Sexo = false, Equipe = "DBA"},
     new Profissional { Nome = "Geraldo Magella", Sexo = true, Equipe = "Infra"},
     new Profissional { Nome = "Giovanni Zanandreis", Sexo = true, Equipe = "DBA"}
 };

Agora digamos que queremos encontrar todos os profissionais que tenham “Paulovich” no nome.

//
// Pesquisa com string
//
var irmaos = from irmao in todos
            where irmao.Nome.Contains("Paulovich")
            select irmao;

E o resultado será uma coleção assim:

//
// Retorno da pesquisa
//
var todos = new Collection<Profissional>
 {
     new Profissional { Nome = "André Paulovich", Sexo = true, Equipe = ".Net"},
     new Profissional { Nome = "Ivan Paulovich", Sexo = true, Equipe = ".Net"}
 }

Ou talvez precisemos encontrar todos os profissionais que comecem com “G”.

//
// Pesquisa com string que começa com "G"
//
var gs = from g in todos
           where g.Nome.StartsWith("G")
           select g;

Ou ainda, se precisássemos encontrar todos os profissionais que terminem com “Lima”.

//
// Pesquisa com string que termine com "Lima"
//
var irmaos = from irmao in todos
               where irmao.Nome.EndsWith("Lima")
               select irmao;

Pronto! É simples assim.