He leído un montón de artículos sobre la elección de la correcta recaudación para una aplicación específica, y entiendo que al final todo se reducirá a la evaluación comparativa de los datos reales, pero mientras estoy ocupado haciendo que:Colección modificar elemento
¿Qué colección ordenada en C# permite la modificación de un artículo contenido? Parece que no puedo encontrar ninguno?
Esto es porque una modificación probablemente se implementaría como una eliminación luego volver a insertar, por lo tanto, hacer una función explícita 'Modificar' inútil?
Estoy en la necesidad de una colección (personalizado o biblioteca estándar), con las siguientes operaciones que se realizan en él.
- Insertar - a menudo
- Remove - a menudo
- Modificar - muy a menudo
- elementos Seleccione Inicio X - cada vez que cualquiera de los anteriores sucede, y más, al mismo tiempo.
Actualmente estoy usando un SortedSet, ya que proporciona insertos (O) logn, pero no tengo muy claro en rendimiento de eliminación y cómo modificar un artículo mejor.
¿La colección necesita ordenarse en todo momento? Obtendrá un gran beneficio de rendimiento si puede aplicar múltiples modificaciones y luego ordenarlas una vez. –
@Evenhuis Desafortunadamente sí, porque varios "clientes" solicitarán esta lista, y la necesitan en orden ordenado cada vez que se realiza un cambio en esta lista. O al menos el elemento superior. – Vort3x
Utilizamos un BST equilibrado en nuestro curso de estructuras de datos. Fue bastante rápido pero lo implementamos en C++. Puede considerarlo tal vez. Aquí hay una buena fuente de información: http: //www.codeproject.com/Articles/68500/Balanced-Binary-Search-Tree-BST-Search-Delete-Prin –