COMO EFETUAR UMA BUSCA NA LISTBOX?

ELISEUFILIPI 22/06/2012 14:53:43
#404698
Olá

Meu objetivo é criar um software onde insiro informações, salvo em .txt e visualizo depois.
Eu utilizo o codigo a baixo no Form do projeto para exibir arquivos de uma determinada pasta na listbox.
-----------------------------------------------------------------------
ListBox1.Items.Clear()
Dim di As New IO.DirectoryInfo(My.Application.Info.DirectoryPath & [Ô]\Banco Dados[Ô])
Dim diar1 As IO.FileInfo() = di.GetFiles([Ô]*.txt[Ô])
Dim dra As IO.FileInfo
For Each dra In diar1
ListBox1.Items.Add(dra)
Next
-----------------------------------------------------------------------

Quando eu seleciono o item na listbox, aparece os dados do arquivo (com outro código não sitado) em cada textbox.
Minha dúvida é: Como posso efetuar uma busca na listbox por palavras e/ou letras exibindo resultados nela mesmo ou em outra?

Ex.:
No ListBox1 tem 3 itens: Joao.txt, Marcos.txt e Jose.txt
Em um TextBox eu digito [Ô]s[Ô] e aparece no ListBox2 os arquivos que possuem a letra [Ô]s[Ô], no caso: [Ô]Marcos, Jose[Ô].
Eu tentei usar o codigo a baixo com 2 listbox, que funciona perfeitamente em outras ocasiões mas devido ao código a sima da erro.
-----------------------------------------------------------------------
ListBox2.Items.Clear()
Dim listLength As Integer = (ListBox1.Items.Count - 1)
Dim i, j As Integer
Dim listString, newString As String
For i = 0 To listLength
listString = ListBox1.Items.Item(i)
If InStr(listString.ToLower, TextBox1.Text.ToLower) Then
ListBox2.Items.Add(listString)
End If
Next
listString = Nothing
-----------------------------------------------------------------------

Alguam pode me ajudar
KERPLUNK 22/06/2012 15:01:33
#404699
O mais profissionalmente correto:
- Crie uma classe, que contenha as propriedades de arquivo.
- Faça a busca na pasta que você quer, mas ao invés de adicionar ao listbox o conteúdo da pasta, crie uma lista genérica [Ô]List(Of Entidade)[Ô] e adicione os arquivos e suas propriedades nela.
- Guarde essa lista a nível de formulário para a pesquisa
- Use uma expressão lambda para procurar o que você deseja na lista genérica e não no listbox

é um erro muito comum, usar componentes como fonte de dados. Deve-se entender que componentes, foram feitos para visualização e não para servirem como repositório de dados.
Tópico encerrado , respostas não são mais permitidas