Почему .NET не имеет структуры данных Набора?

Нет, не действительно. Это - вопрос предпочтения действительно. Мне понравилось работать в Visual Studio 6, но в наше время более новые версии просто слишком чрезмерно увеличены в размере. Таким образом, если я могу сделать что-то вне VS, я обычно делаю это, не открывая целое поле IDE.

окна On мне нравятся notepad2 и gvim. Я настроил энергию до такой степени, когда, она удовлетворяет моим потребностям отлично, таким образом, я не должен думать о какой и где.

, Но, хорошо упомянуть, что (Вы могли также понять это собой, читая подобные сообщения), много пользователей использует vim/emacs/... потому что из heard-its-the-best/cool-factor/actual-usability. Таким образом, если это не подходит Вам, не используйте его. То, что я собирался взгляда Вы неправильный путь причина этого.

5
задан Joe Phillips 16 September 2009 в 16:01
поделиться

9 ответов

Я думаю, что это просто упущение авторов BCL. .NET 3.5 имеет класс HashSet ; для более ранних версий я рекомендую заключить Dictionary в оболочку с нулями в поле значения, чтобы воспроизвести время добавления, удаления и поиска O (1).

8
ответ дан 18 December 2019 в 05:40
поделиться

В .NET 4.0 HashSet будет модернизирован для реализации даже нового интерфейса ISet .

5
ответ дан 18 December 2019 в 05:40
поделиться

.NET 3.5 имеет HashSet , который выполняет все операции с наборами.

4
ответ дан 18 December 2019 в 05:40
поделиться

Вы имеете в виду HashSet ?

3
ответ дан 18 December 2019 в 05:40
поделиться

В наши дни есть HashSet , но, к сожалению, нет интерфейса, о котором я знаю.

3
ответ дан 18 December 2019 в 05:40
поделиться

Как отмечали другие, существует HashSet , который на самом деле является просто набором.

Причина, по которой перед ним стоит хэш (деталь реализации набора, поскольку он использует хэши для устранения дубликатов) потому, что Набор является ключевым словом в VB.NET.

3
ответ дан 18 December 2019 в 05:40
поделиться

Недавно я тоже перешел с Java на .Net (из-за профессиональной занятости), и я должен признать, что мои первоначальные проблемы также были связаны с коллекциями.
В текущей версии .Net (3.5 и если говорить о C #) вам следует ориентироваться на

  • ICollection
  • IList
  • List
  • IDictionary
  • IEnumerable < T>

Это наиболее часто используемые (надеюсь, я не пропустил ни одного)

2
ответ дан 18 December 2019 в 05:40
поделиться

Возможно, причина в том, что набор на самом деле является просто списком с определенной деталью реализации, которая ограничивает элементы в нем отличием. Поскольку отчетливость списка заключается в реализации, а не в интерфейсе, интерфейс не требуется.

Как уже упоминалось, FCL имеет HashSet .

2
ответ дан 18 December 2019 в 05:40
поделиться

Может быть, из соображений образования.

Типичный программист видит наборы как волшебный контейнер, который работает независимо от того, сколько в нем элементов.

Если нет явного набора , программист вынужден выбирать из других типов и при этом размышлять о количестве элементов и соответствующей структуре данных для достижения хорошей производительности.

Просто дикая догадка.

1
ответ дан 18 December 2019 в 05:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: