0

我想在我的应用程序中创建一个快速搜索。

假设我有一堂课:

public class Venue
{
    public virtual string LongName { get; set; }
    public virtual string ShortName { get; set; }
    public virtual string Market { get; set; }
    public virtual int ClientEmail { get; set; }
}

我想索引一组这个(和其他)对象。

用户将一些数据输入文本框的想法,“内存索引”将接受该字符串,并返回在一个或多个属性中包含搜索值的所有对象。

.NET 中是否有针对此类事情的开箱即用解决方案?还是图书馆之类的?

谢谢

4

2 回答 2

2

我不知道任何开箱即用的解决方案,但我会手动完成。

string input = "whatever";
IEnumerable<Venue> matches = allVenues.Where(v => v.LongName.Contains(input)
                               ||  v.ShortName.Contains(input)
                               ||  v.Market.Contains(input)
                               ||  v.ClientEmail.ToString().Contains(input));

也许它已经足够快了。优点是您不需要任何额外的资源。

于 2012-10-23T09:44:20.677 回答
0

如果您想以相对酷的方式存储数据,请检查Lucene.Net甚至是RavenDB文档数据库 - 这是基于 Lucene.Net 的方式。RavenDB 实现了 LINQ 驱动程序,因此您可以在您的集合中使用 LINQ 查询,并动态获取它们。您有索引支持,因此您可以为您的计算实现真正的高性能。

于 2012-10-23T09:45:31.673 回答