Sto lavorando su un progetto in cui le matrici sono la struttura dei dati di default per ogni cosa, e ogni query è una ricerca lineare sotto forma di:buona struttura di dati per efficienti di inserimento/interrogazione sulle proprietà arbitrarie
- Bisogno un cliente con un nome particolare?
customer.Find(x => x.Name == name)
- Hai bisogno di un cliente con un particolare ID univoco?
customer.Find(x => x.Id == id)
- Hai bisogno di un cliente di un particolare tipo ed età?
customer.Find(x => x is PreferredCustomer && x.Age >= age)
- Hai bisogno di un cliente con un nome particolare ed età?
customer.Find(x => x.Name == name && x.Age == age)
In quasi tutti i casi, i criteri per le ricerche sono ben definiti. Ad esempio, cerchiamo solo i clienti con una o più proprietà Id, Tipo, Nome o Età. Raramente cerchiamo da qualcos'altro.
È una buona struttura dati per supportare query arbitrarie di questi tipi con ricerca migliore di O (n)? Qualsiasi implementazione immediata per .NET?
Un database ... Zing! –