sirve que para objectmodel generic collection colecciones .net collections

.net - que - system collections objectmodel



¿Recomendaría utilizar "La Biblioteca de Colección Genérica de C5 para C#y CLI" en función de su experiencia con ella? (3)

Esta biblioteca de colecciones gratuitas proviene de IT University of Copenhagen.

http://www.itu.dk/research/c5/

Hay un video con uno de los autores en el Canal 9. Estoy tratando de aprender a usar estas colecciones y me preguntaba si alguien tiene más experiencias o cuáles son sus pensamientos sobre esta biblioteca de colecciones específica para .NET. ¿Te gusta la forma en que están diseñados, te gusta su rendimiento y cuáles fueron tus principales problemas con ellos?


He estado usando la biblioteca C5 desde hace un tiempo y con mucho éxito. Encuentro que C5 ofrece un gran beneficio en la programación de la interfaz. Por ejemplo, en System.Collections.Generic , la interfaz IList no ofrece todas las funcionalidades de las implementaciones ArrayList y LinkedList . Por el contrario, en C5, puede acceder a todas las funciones de ArrayList y LinkedList simplemente con un C5.IList .

Además, los autores originales tuvieron mucho cuidado de documentar la velocidad asintótica de muchas operaciones críticas, como el conteo de la colección, el contenido y la indexación. La biblioteca utiliza internamente estas propiedades al realizar operaciones entre colecciones para determinar qué colección sería más rápida como el "actor".

Además, si bien no se actualiza en un momento, el libro de documentación C5 es un recurso increíble que proporciona documentación clara sobre la biblioteca.


Además de los puntos de ese omer van kloeten.

La licencia de código abierto es MIT (comparable a la licencia BSD), lo que significa que si necesita realizar cambios en la biblioteca, no tiene que abrir los cambios. (Esto podría ser un problema con algunas empresas). Para las licencias de tipo GPL esto puede ser un problema.


Lo he usado en el pasado y hay un par de notas que debo hacer:

  1. La biblioteca es muy buena, muy rápida y muy útil. Tiene muchas estructuras de datos muy bonitas, algunas de las cuales no conocía antes de comenzar a usar esta biblioteca.
  2. ¡Es de código abierto! Este es un gran beneficio.
  3. A veces no tienes exactamente lo que quieres. Por lo que mi experiencia demostró, los autores de la biblioteca decidieron adoptar una actitud muy intolerante, arrojando excepciones sobre todo. Esto me llevó a agregar algunos métodos tolerantes a fallas.

En general, una biblioteca muy agradable con algunas estructuras de datos avanzadas. Desafortunadamente, el soporte es muy escaso, como se puede ver en el hecho de que los nuevos lanzamientos (correcciones de errores, etc.) varían de 6 meses a un año.

Nota: Comenzando con Mono 2.0, C5 se incluye como una API de terceros , que creo que es un maravilloso espectáculo de fe en el producto del equipo de Mono.