我很快就会需要使用 C# 尽可能快地重复搜索大约 100,000 个元素的列表(大约每 15 秒),以查找具有特定值的元素。使用 Linq 在列表中搜索元素(其中 3-4 个字段具有特定值)会比使用内存中的 SQLite 数据库更快吗?有更好的选择吗?
我不介意在每次程序执行时重新创建数据库,因此从 CSV 文件中读取数据是可以接受的。
数据集将是数据流中的一个窗口,随后,列表将逐渐变化,从列表的开头删除一条记录,每 15 秒在末尾添加一条记录。
我有什么选择?
您可以使用名为 IndexedList 的帮助程序库,您可以从http://indexedlist.codeplex.com/下载它。使用此库,您可以在对象的任何字段上添加索引,然后在列表中执行快速搜索。默认索引实现使用 Dictionary 来存储索引数据,您也可以更改它。我为我自己的项目创建了这个库,然后我将它作为一个新的开源项目发布。我很高兴听到您对这个库的反馈。