gpt4 book ai didi

c# - 动态搜索结果 C#

转载 作者:行者123 更新时间:2023-11-30 22:42:10 25 4
gpt4 key购买 nike

我尝试通过文本框中的动态搜索来开发结果列表。

现在我在以下时间更新记录:

        SearchBox.TextChanged += new EventHandler(SearchBox_TextChanged);`

但我必须等待我写入的每个字符才能获得列表的完整结果。

所以如果我搜索例如“com”,结果不是包含“com”的词,而是只包含“c”的词。

为了获得“com”的结果,我需要这样写:"c"-> 等待完成搜索"o"-> 等待完成搜索"m"-> 等待完成搜索

我怎样才能等待用户输入单词然后进行搜索?

谢谢。

最佳答案

你不知道用户想在文本框中插入什么,所以可能是 Cat、Contact、Com、Computer... 所以你应该通过用户的每个关键字来限制搜索列表,你也可以设置一个策略例如,仅在输入长度至少为 3 时搜索。

编辑:另一种方法是使用 Lazy 模式,意味着保留文本的最后一次更改时间,然后在另一个线程(如计时器)中检查上次用户更改之间是否有超过 2 秒的时间到当前时间,更新您的搜索:(计时器间隔为 2 秒)。

private DateTime lastChange = DateTime.Now;
private bool textChanged = false;
object lockObject = new object();

private void textChanged(object sender, EventArg e)
{
lock(lockObject)
{
lastChange = DateTime.Now;
textChanged = true;
}
}

private void timer1_Tick(object sender, EventArgs е)
{
lock(lockObject)
{
if (textChanged && lastChange > DateTime.Now.AddSeconds(-2)) // wait 2 second for changes
{
UpdateList(); // or the method for searching.
textChanged = false;
lastChange = DateTime.Now;
}
}
}

关于c# - 动态搜索结果 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4546256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com