我正在尋找一個庫,它可以接受對象集合並返回將針對快速查詢進行優化的索引數據結構。對象的快速查詢集合
這可能是更好的通過一個例子來說明:
public class MyClass
{
public sting Name {get;set;}
public double Number {get;set;}
public ... (Many more fields)
}
var dataStore = Indexer.Parse(myClassCollection).Index(x => x.Name).Index(x => x.Number).Index(x => x.SomeOtherProperty);
var queryResult = dataStore.Where(x => x.Name == "ABC").Where(x => x.Number == 23).Where(x => x.SomeOtherProperty == dateTimeValue);
的想法是,在dataStore
查詢會非常快,O(log n)
的順序。
當您想要索引超過2或3個字段時,使用詞典的詞典開始變得複雜。
是否有一個庫已經存在,做這樣的事情?
數據庫如何? SQLite或SQL Server Express浮現在腦海 –
如下所述,我想將所有內容都保存在內存中。我知道SQLite確實有一個內存模塊,但它只是對我正在嘗試做的事情感到重量級。 – ckoo
很確定不是來自Microsoft的.NET。 .NET不會嘗試做一個數據庫(我不希望它是)。對於集合,密鑰是散列的,就是關於它的。 DataTable可以有多個鍵,但與.NET 4.0+集合相比,DataTable速度較慢。多少? LINQ to List非常快。 – Paparazzi