繁体   English   中英

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

[英]C# read search result from textbox and show in listbox

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

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

    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!");
        }
    }         

假设您在搜索词上使用一个输入文本框:

// 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)));
}

我会做这样的事情(准备好复制粘贴):

private void buttonSearch_Click(object sender, EventArgs e)
{
        string searchTerm = textBoxSearch.Text.ToLower();

        List<string> searchWords = new List<string>(searchTerm.Split(new char[] { ' ' }));
        List<Person> searchResult = new List<Person>();

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

        listBoxPeople.Items.Clear();

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM