索引 C# 数据表以像使用 SQL 查询一样进行搜索

Indexing a C# Datatable to search like you would with a SQL query

我在 Stack Overflow 中找不到任何类似的问题

有没有办法在内存中创建一个带有索引的虚拟 SQL 数据库?或者也许是一个内置函数,用于在数据 table 上创建索引以快速搜索 table 中的列多次?尝试将 table A 的每一行与 table B 中的索引条目进行比较(而不是针对 Table A 中的每一行完全循环遍历 table B 的每一行)。

现在我正在创建一个 dictionary 索引,其中 T 是被索引的列的类型,int 是行。这样,如果我创建一个索引,我会循环遍历 table 的所有行并在该列上创建一个字典键(字典值为行号)。这适用于唯一的主键,如果给定键有多行,我会使用 int 列表的变体。

这在尝试在另一个 table 中找到确切值时有效,但如果我想执行比较并找到所有大于特定值的 int 键,则无效。我可能可以用排序的二叉搜索树重新发明轮子(特别是因为 table 数据是静态的),但宁愿使用现有的解决方案而不会引入我自己的代码错误的风险。

创建内存中的 SQLite 数据库,然后您就可以利用它的所有优势。 https://sqlite.org/inmemorydb.html