Você está aqui: C# ::: Windows Forms ::: ListBox |
Pesquisando itens em uma ListBox usando o método FindStringExact()Quantidade de visualizações: 8944 vezes |
O método FindStringExact() da classe ListBox é útil quando precisamos localizar um item em uma ListBox que contém exatamente o texto da string fornecida como argumento (ao contrário do método FindString(), que encontra um item que começa com a string informada). Este método recebe uma string e retorna o índice (começando em 0) do item encontrado. Se o item não for localizado, o retorno é -1 (ou ListBox.NoMatches). Veja um exemplo:----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
private void button1_Click(object sender, EventArgs e){
// vamos adicionar alguns itens na ListBox
listBox1.Items.Add("Java");
listBox1.Items.Add("C++");
listBox1.Items.Add("Delphi");
listBox1.Items.Add("Python");
listBox1.Items.Add("VB.NET");
// vamos pesquisar um item que contenha o texto "Python"
int pos = listBox1.FindStringExact("Python");
if(pos != ListBox.NoMatches){
MessageBox.Show("O item foi encontrado no índice: " + pos);
}
else{
MessageBox.Show("O item não foi encontrado");
}
}
Veja que aqui nós pesquisamos um item que contém exatamente o texto "Python" e o mesmo foi localizado no índice 3. Note também que a comparação feita pelo método FindStringExact() não é case-sensitive, ou seja, não diferencia letras maiúsculas de minúsculas. Se houver dois ou mais itens começando com a mesma string fornecida como argumento, o primeiro item é retornado. Há uma versão sobrecarregada do método FindStringExact() que permite especificar o índice a partir do qual a pesquisa será feita. Veja: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
private void button1_Click(object sender, EventArgs e){
// vamos adicionar alguns itens na ListBox
listBox1.Items.Add("Java");
listBox1.Items.Add("C++");
listBox1.Items.Add("Delphi");
listBox1.Items.Add("Python");
listBox1.Items.Add("VB.NET");
// vamos pesquisar o item "Delphi"
// agora a pesquisa é feita a partir do quarto elemento
int pos_inicial = 3;
int pos = listBox1.FindStringExact("Delphi", pos_inicial);
if((pos != ListBox.NoMatches) && (pos >= pos_inicial)){
MessageBox.Show("O item foi encontrado no índice: " + pos);
}
else{
MessageBox.Show("O item não foi encontrado");
}
}
Neste código eu fiz um pequeno "hack". No .NET 3.5 e anteriores (e talvez posteriores) o método FindStringExact() reinicia a busca a partir do índice 0 se o item pesquisado não for encontrado a partir do índice que especificamos e esta pode não ser a intenção de nosso código. Assim, fiz de forma que testamos se o elemento pesquisado foi realmente encontrado a partir do índice inicial definido. A versão sobrecarregada do método FindStringExact() pode atirar uma exceção do tipo ArgumentOutOfRangeException se o índice a partir do qual a pesquisa será feita for um valor maior que a quantidade de itens na lista menos 1. |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
|
C - Como calcular a energia cinética de um corpo dado sua massa e sua velocidade usando a linguagem C |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




