Você recomendaria usar “A Biblioteca de Coleções Genéricas C5 para C# e CLI” com base em sua experiência com ela?

StackOverflow https://stackoverflow.com/questions/47432

  •  09-06-2019
  •  | 
  •  

Pergunta

Esta biblioteca de coleção gratuita vem da IT University of Copenhagen.

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

Há um vídeo com um dos autores no Canal 9.Estou tentando aprender como usar essas coleções e gostaria de saber se alguém tem mais experiências ou o que você acha dessa biblioteca de coleções específica para .NET.Você gosta da maneira como eles são projetados, gosta do desempenho deles e quais foram seus principais problemas com eles?

Foi útil?

Solução

Eu usei isso no passado e há algumas anotações que devo fazer:

  1. A biblioteca é muito boa, muito rápida e muito útil.Possui muitas estruturas de dados muito legais, algumas das quais eu não conhecia antes de começar a usar esta biblioteca.
  2. É código aberto!Este é um enorme benefício.
  3. Às vezes você não tem exatamente o que deseja.Pelo que minha experiência mostrou, os autores da biblioteca decidiram adotar uma atitude muito intolerante a falhas, lançando exceções sobre tudo.Isso me fez adicionar alguns métodos tolerantes a falhas.

Resumindo, uma biblioteca muito boa com algumas estruturas de dados avançadas.Infelizmente, falta muito suporte para isso, como você pode ver pelo fato de que novos lançamentos (correções de bugs, etc.) variam de 6 meses a um ano.

Observação: Começando com Mono 2.0, C5 é empacotado como uma API de terceiros, o que acredito ser uma maravilhosa demonstração de fé no produto da equipe Mono.

Outras dicas

Já uso a biblioteca C5 há algum tempo e com muito sucesso.Acho que o C5 oferece grandes benefícios na programação para interface.Por exemplo, em System.Collections.Generic, o IList interface não oferece todas as funcionalidades do ArrayList e LinkedList implementações.Por outro lado, no C5, você pode acessar todas as funcionalidades do ArrayList e LinkedList apenas segurando um C5.IList.

Além disso, os autores originais tiveram muito cuidado em documentar a velocidade assintótica de muitas operações críticas, como contagem de coleções, conteúdo e indexação.A biblioteca usa internamente essas propriedades ao realizar operações entre coleções para determinar qual coleção seria mais rápida como o "ator".

Além disso, embora não seja atualizado há algum tempo, o livro de documentação C5 é um recurso incrível que fornece documentação clara sobre a biblioteca.

Além dos pontos de Omer van Kloeten.

A licença de código aberto é MIT (comparável à licença BSD), o que significa que se você precisar fazer alterações na biblioteca, não será necessário abrir o código-fonte das alterações.(isso pode ser um problema com algumas empresas).Para licenças do tipo GPL isto pode ser um problema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top