public void AplicarFiltro() { if (PesquisaPorNome == null) { PesquisaPorNome = ""; } var resultado = EstabelecimentosFiltrado.Where(n => n.Nome.ToLowerInvariant() .Contains(pesquisaPorNome.ToLowerInvariant().Trim())).ToList(); var removerDaLista = Estabelecimentos.Except(resultado).ToList(); foreach (var item in removerDaLista) { Estabelecimentos.Remove(item); } for (int index = 0; index < resultado.Count; index++) { var item = resultado[index]; if (index + 1 > Estabelecimentos.Count || !Estabelecimentos[index].Equals(item)) { Estabelecimentos.Insert(index, item); } } }