2012-04-15 2 views
0

У меня есть ASP.NET ListBox, который отображает список действий, взятых из текстового файла. Теперь я хочу искать слова, например «хоккей», введенные пользователем в элементе управления TextBox, и отображать в ListBox только действия, содержащие эту строку поиска.C# поиск в текстовых словах в список

ответ

2

вопрос расплывчато достаточно, но учитывая, информация, полученная от должности, я бы сказал, следовать этому образцу (псевдокод):

using (StreamReader sr = new StreamReader(filepath)) 
{ 

     while (sr.Peek() >= 0) 
     { 
      string fileLine = sr.ReadLine(); 
      if(fileLine .Contains("hockey")) 
       DisplayInListBox(fileLine); 
     } 
} 

Что-то вроде этого.

+1

Похоже, что он уже прочитал данные из файла, поскольку уже привязал его к ListBox. Также код, который смешивает операции чтения файлов, показывает, что обновление пользовательского интерфейса выглядит не совсем хорошо с моей точки зрения, почему просто не отделять низкоуровневые функции чтения файлов от материалов UI? – sll

+0

@sll: честно говоря, не очень понятно. Потому что в обоих случаях он говорит о 'activites' – Tigran

0

довольно тривиальным я думаю:

var items = //listBox1.Items; 
private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    listBox1.Items.Clear(); 

    foreach (object s in items) 
    { 
     if (s.ToString().Contains("hockey")) 
      listBox1.Items.Add(s); 
    } 

    if (listBox1.Items.Count > 0) 
     listBox1.SelectedIndex = 0; 
} 

Основная идея состоит в том, чтобы кэшировать исходные элементы ListBox, и очистить его, а затем заполнить в соответствии с строкой, набранного в текстовом поле.

Смежные вопросы