.net NET中的内存中对象索引
我想在我的应用程序中创建一个快速搜索 假设我有一门课:.net NET中的内存中对象索引,.net,.net,我想在我的应用程序中创建一个快速搜索 假设我有一门课: 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; } } 我想索
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中是否有现成的解决方案来解决此类问题?或者图书馆,或者别的什么
谢谢我不知道任何现成的解决方案,但我会手动完成
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));
string input=“无论什么”;
IEnumerable matches=allVinces.Where(v=>v.LongName.Contains)(输入)
||v.ShortName.Contains(输入)
||v.市场包含(输入)
||v.ClientEmail.ToString()包含(输入));
也许足够快了。这样做的好处是不需要任何额外的资源。如果您想以相对凉爽的方式存储数据,请检查甚至文档数据库,这是基于Lucene.Net的。RavenDB实现了LINQ驱动程序,所以您可以在集合中使用LINQ查询,并动态地获取它们。你有索引支持,因此你可以为你的计算实现真正高的性能。所以
包含,而不是等于对吗?Lucene.NET应该做到这一点:Hmm包含或等于。基本上,对对象的字符串属性进行全文搜索,对数值属性进行相等搜索。