Вы бы порекомендовали использовать «Универсальную библиотеку коллекций C5 для C # и CLI», исходя из своего опыта работы с ней? - PullRequest
21 голосов
/ 06 сентября 2008

Эта бесплатная коллекция библиотек поступила из IT-университета Копенгагена.

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

На канале 9 есть видео с одним из авторов. Я пытаюсь узнать, как использовать эти коллекции, и мне было интересно, есть ли у кого-нибудь еще опыт или что вы думаете об этой конкретной библиотеке коллекций для .NET. Вам нравится, как они спроектированы, вам нравится их производительность и какие у вас были основные проблемы с ними?

Ответы [ 3 ]

18 голосов
/ 07 сентября 2008

Я использовал его в прошлом, и я должен сделать несколько замечаний:

  1. Библиотека очень хорошая, очень быстрая и очень полезная. В нем много очень хороших структур данных, некоторые из которых я не знал до того, как начал использовать эту библиотеку.
  2. Это с открытым исходным кодом! Это огромное преимущество.
  3. Иногда у вас нет именно того, что вы хотите. Как показал мой опыт, авторы библиотеки решили пойти с очень нетерпимым отношением, бросая исключения во всем. Это заставило меня добавить несколько отказоустойчивых методов.

В целом, очень хорошая библиотека с некоторыми продвинутыми структурами данных. К сожалению, поддержка для этого очень отсутствует, как вы можете видеть из того факта, что новые выпуски (исправления ошибок и др.) Колеблются где-то от 6 месяцев до года.

Примечание: Начиная с Mono 2.0, C5 связан как сторонний API , что, на мой взгляд, является прекрасной демонстрацией веры в продукт от команды Mono.

7 голосов
/ 16 октября 2008

Я уже некоторое время пользуюсь библиотекой C5 и с большим успехом. Я считаю, что C5 предлагает большое преимущество в программировании интерфейса. Например, в System.Collections.Generic интерфейс IList не предлагает всех функций реализаций ArrayList и LinkedList. И наоборот, в C5 вы можете получить доступ ко всем функциям ArrayList и LinkedList, просто удерживая C5.IList.

Кроме того, авторы оригинала очень внимательно относились к документированию асимптотической скорости многих критических операций, таких как подсчет коллекции, содержание и индексация. Библиотека внутренне использует эти свойства при выполнении операций между коллекциями, чтобы определить, какая коллекция будет быстрее, чем «актер».

Кроме того, хотя она и не обновляется некоторое время, книга документации по C5 является удивительным ресурсом, который предоставляет четкую документацию по библиотеке.

1 голос
/ 07 сентября 2008

В дополнение к очкам Омера ван Клоэтена.

Лицензия с открытым исходным кодом - MIT (сравнимая с лицензией BSD), это означает, что если вам нужно внести изменения в библиотеку, вам не нужно открывать исходные данные для изменений. (это может быть проблемой с некоторыми компаниями). Для лицензий типа GPL это может быть проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...