개체 컬렉션을 허용하고 빠른 쿼리를 위해 최적화 된 인덱싱 된 데이터 구조를 반환하는 라이브러리를 찾고 있습니다.개체의 빠른 쿼리 가능한 컬렉션
이 아마 더 나은 예에 의해 설명된다
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은 여러 개의 키를 가질 수 있지만 DataTable은 .NET 4.0 이상의 컬렉션과 비교할 때 속도가 느립니다. 얼마나? List에 LINQ는 꽤 빠릅니다. – Paparazzi