内存中集合(.NET)的快速自动完成

时间:2010-11-08 18:07:53

标签: c# linq search

我在网页上有这个文本输入字段。用户键入要购买的项目名称。我想根据到目前为止输入的字母提供可能名称的下拉列表。

问题是如何在服务器上实现搜索(ASP.NET MVC)。我可能会在app start上的静态变量中加载项目名称的整个集合(有超过10万个)。如何从给定的一个或多个字符开始有效地搜索名称?

TIA

2 个答案:

答案 0 :(得分:2)

您可以按名称对集合进行排序,然后编写一个返回一系列项目的修改后的二进制搜索。

但是,我建议先尝试一个简单的顺序搜索,看看它在负载下的行为。

答案 1 :(得分:1)

  

我可能会加载整个   项目名称的集合(有   超过100 000)在一个静态变量上   应用开始。我应该如何实施   有效搜索名称开始   给定一个或多个字符?

通过NOT(!)将它们加载到静态变量中。使用“top 101”子句在每个请求上命中数据库服务器。结束。