.NET中的内存中对象索引

时间:2012-10-23 09:39:20

标签: .net

我想在我的应用程序中创建一个quicksearch。

假设我有一个班级:

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中是否有开箱即用的解决方案?或图书馆,还是其他什么?

由于

2 个答案:

答案 0 :(得分: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));

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

答案 1 :(得分:0)

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