我想在我的应用程序中创建一个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中是否有开箱即用的解决方案?或图书馆,还是其他什么?
由于
答案 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查询,并动态获取它们。您具有索引支持,因此您可以为计算实现非常高的性能。