Ho letto tonnellate di articoli sulla scelta della raccolta corretta per un'implementazione specifica, e capisco che alla fine si arriverà al benchmark dei dati reali, ma mentre sono impegnato a farlo:Collezione modifica articolo
Quale raccolta ordinata in C# consente la modifica di un articolo contenuto? Non riesco a trovarlo?
È questo a causa di una modifica sarebbe probabilmente essere implementato come una rimozione poi ri-inserimento, rendendo così un esplicito funzione 'Modifica' inutile?
ho bisogno di una raccolta (personalizzata o libreria standard), con le seguenti operazioni eseguite su di esso.
- Inserisci - spesso
- Remove - spesso
- Modifica - molto spesso
- elementi Select Top X - ogni volta che una di queste accade, e di più, simultaneamente.
Attualmente sto usando un SortedSet, in quanto fornisce O inserti (log), ma sono poco chiare su prestazioni di rimozione e come modificare un elemento migliore.
La raccolta deve essere ordinata in ogni momento? Otterrai un enorme vantaggio in termini di prestazioni se puoi applicare più modifiche e poi effettuare le ordinazioni una volta dopo. –
@Evenhuis Sfortunatamente sì, perché più "clienti" richiedono questo elenco e ne hanno bisogno in ordine ogni volta che viene apportata una modifica a questo elenco. O almeno l'elemento principale. – Vort3x
Abbiamo utilizzato una BST bilanciata nel nostro corso di strutture dati. È stato piuttosto veloce, ma l'abbiamo implementato in C++. Potresti considerarlo forse. Ecco una buona fonte di informazioni: http: //www.codeproject.it/Articoli/68500/Balanced-Binary-Search-Tree-BST-Search-Delete-Prin –