Você está aqui: C# ::: Windows Forms ::: ListBox |
Pesquisando itens em uma ListBox usando o método FindString()Quantidade de visualizações: 9173 vezes |
O método FindString() da classe ListBox é útil quando precisamos localizar um item em uma ListBox que começa com uma determinada string. 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. Veja um exemplo:
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");
// vamos pesquisar um item que começa com "Py"
int pos = listBox1.FindString("Py");
if(pos > -1){
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 começa com "Py" e o mesmo foi localizado no índice 3. Note também que a comparação feita pelo método FindString() 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 FindString() que permite especificar o índice a partir do qual a pesquisa será feita. Veja:
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 começa com "Del"
// agora a pesquisa é feita a partir do quarto elemento
int pos_inicial = 3;
int pos = listBox1.FindString("Del", 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 FindString() 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 FindString() 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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





