C# 从内存中收集(.NET)快速自动完成

C# 从内存中收集(.NET)快速自动完成,c#,linq,search,C#,Linq,Search,我在网页上有这个文本输入字段。用户输入要购买的项目名称。我想提供一个下拉列表,根据到目前为止键入的字母列出可能的名称 问题是如何在服务器上实现搜索(ASP.NET MVC)。我可能会在appstart的一个静态变量中加载整个项目名称集合(超过100000个)。我应该如何高效地搜索以给定的一个或多个字符开头的名称 TIA您可以按名称对集合进行排序,然后编写一个修改过的二进制搜索,返回一系列项目 然而,我建议首先尝试一个简单的顺序搜索,看看它在负载下的表现 我可能会把整个 项目名称集合(有 上的静态

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

问题是如何在服务器上实现搜索(ASP.NET MVC)。我可能会在appstart的一个静态变量中加载整个项目名称集合(超过100000个)。我应该如何高效地搜索以给定的一个或多个字符开头的名称


TIA

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

然而,我建议首先尝试一个简单的顺序搜索,看看它在负载下的表现

我可能会把整个 项目名称集合(有 上的静态变量超过100000) 应用程序启动。我应该如何实施 快速搜索姓名开始 使用给定的一个或多个字符


通过不(!)将它们加载到静态变量中。在每个请求中使用“TOP101”子句点击db服务器。完成。

汤姆,真的吗?那一页有时负荷很大。自动完成必须是即时的。在数据库中查找只读数据违反了我所听到的所有最佳实践。ppl使用Memcached和Velocity肯定是有原因的。是的,真的。或预缓存结果(即输入字符串、返回的结果),可通过IIS输出缓存完成。不要重新实现数据库。如果您需要更多的数据库服务器,请获取它们。编程将花费你更多。