Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net NET中的内存中对象索引_.net - Fatal编程技术网

.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包含或等于。基本上,对对象的字符串属性进行全文搜索,对数值属性进行相等搜索。