Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

516
Visualizações
Whole word search in LINQ

How can I search for whole word in LINQ?

If I am searching for a word "car" in a list of strings {"carpenter","car repair","carrying","car workshop"} etc. And the result should be "car repair" & "car workshop" only . I tries the below code

  List<string> _tags = (from item in string_array
                                 where item.ToLower().Contains(search_term)
                                 select item).ToList();

But, contains always return similar words and I found this link on SO Linq Regex for whole word search which is not providing a complete answer using Regx.

So, anyone can help to write an answer in Regx or is any other options to use with Linq.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Try this:

var result = items.Where(i => i.Split(' ').Any(word => word.ToLower() == "car")).ToList();

If you need to take into account commas, you can use this instead:

var reg = new Regex("\\bcar\\b", RegexOptions.IgnoreCase);

var items = new [] { "carpenter", "car repair", "carrying", "car workshop", "car, repair", "car. repair", "car,repair" };
var result = items.Where(word => reg.IsMatch(word)).ToList();

Gives:

car repair 
car workshop 
car, repair 
car. repair 
car,repair
over 4 years ago · Santiago Trujillo Relatório

0

list.Where(item=>item.Split(' ').Contains("car"));
over 4 years ago · Santiago Trujillo Relatório

0

You can do the following:

  • Split each item in the array on white space using string.Split()
  • Search for the word using Contains using StringComaparer overload

like:

string[] string_array = {"carpenter", "car repair", "carrying", "car workshop"};
string word = "car";
 List<string> _tags = string_array.Where(r => r.Split()
                               .Contains(word, StringComparer.InvariantCultureIgnoreCase))
                                  .ToList();

For output:

foreach (var item in _tags)
{
    Console.WriteLine(item);
}

Output would be:

car repair
car workshop
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda