C#从文本框中读取搜索结果并在列表框中显示

时间:2015-09-19 20:30:46

标签: c# linq contains

我正在做一个学校项目“一个简单的地址簿。文本框中的用户输入名称,地址,邮件编号,城市,电话和电子邮件。然后单击添加按钮并保存到文本文件中并显示新的联系人在列表框中。

现在我可以按名称或城市搜索。我希望用户能够搜索名称和城市。我应该怎么做?这是我的代码。

    private void buttonSearch_Click(object sender, EventArgs e)
    {

        string searchTerm = textBoxSearch.Text.ToLower();


        List<Person> searchResult = People.FindAll(p => p.Name.ToLower().Contains(searchTerm)
        || p.Postort.ToLower().Contains(searchTerm));


        listBoxPeople.Items.Clear();


        foreach (Person person in searchResult)
        {
            listBoxPeople.Items.Add(person.ToListBoxString());
        }

        if(searchResult.Count==0)
        {
            MessageBox.Show("Not found info! try again!");
        }
    }         

1 个答案:

答案 0 :(得分:0)

假设您坚持使用搜索字词的单个输入文本框:

// Get an array of search terms... search for as many as you like
string[] searchTerm = textBoxSearch.Text.ToLower().Split(' ');

List<Person> searchResult = new List<Person>();

foreach (string term in searchTerm)
{
    searchResult.AddRange(People.FindAll(p => p.Name.ToLower().Contains(term)
        || p.Postort.ToLower().Contains(term)));
}