C# 存储要过滤的数据(内存中)的最佳方法?

C# 存储要过滤的数据(内存中)的最佳方法?,c#,algorithm,sorting,data-structures,filtering,C#,Algorithm,Sorting,Data Structures,Filtering,我需要存储一组项目(内存中的C#类型),这些项目有许多字段,例如:语言、所有者、密钥等。我希望以允许快速筛选的方式存储这些项目。例如,我可能需要所有包含language=“en”和key=“key1”的条目。它不会经常被过滤,而且它的大小可能在10k条左右,一个简单的列表/字典就足够了吗?我很好奇如何解决这个问题,因为更大的列表会被更频繁地过滤 如果足够将其存储在内存中,并且没有太多的过滤变体,则可以创建基于字典的数据结构 另一个不使用经典关系数据库的解决方案是,使用Lucene.net,这是一

我需要存储一组项目(内存中的C#类型),这些项目有许多字段,例如:语言、所有者、密钥等。我希望以允许快速筛选的方式存储这些项目。例如,我可能需要所有包含language=“en”和key=“key1”的条目。它不会经常被过滤,而且它的大小可能在10k条左右,一个简单的列表/字典就足够了吗?我很好奇如何解决这个问题,因为更大的列表会被更频繁地过滤

如果足够将其存储在内存中,并且没有太多的过滤变体,则可以创建基于字典的数据结构

另一个不使用经典关系数据库的解决方案是,使用Lucene.net,这是一个非常快速的搜索引擎库。虽然它有一个陡峭的学习曲线和一个有改进余地的文档;-)


或者-只需使用经典数据库,并注意正确设置索引。

在C#中重新实现或只使用DBDB都不是一个选项(编辑了我的问题)。您可以在内存中使用DB。@Martheen从何时开始SQLite在内存中?上次我检查它时使用了一个文件。至少编辑:从那以后一直在那里,谢谢你的输入。它足够存储在内存中,并且没有那么多的变体(就像我在文章中给出的示例)。