Подтвердить что ты не робот

Есть ли структура данных "Установить" в .Net?

В идеале, я ищу шаблонный логический класс Set. Он будет иметь все стандартные операции с множеством, такие как Union, Intersection и т.д., И свернуть дублированные элементы.

Я закончил создание своего собственного набора классов на основе С# Dictionary < > - просто используя клавиши.

4b9b3361

Ответ 1

HashSet - это самое близкое, что вы получите, я думаю.

Ответ 2

Лучшая реализация, которую я видел, является частью замечательной коллекции Wintellect Power: http://www.codeplex.com/PowerCollections.

Реализацию набора можно найти здесь:
http://www.codeplex.com/PowerCollections/SourceControl/FileView.aspx?itemId=101886&changeSetId=6259
Он имеет все ожидаемые операции набора (объединение, пересечение и т.д.).

Надеюсь, это поможет!

Ответ 3

Нет, в рамках нет ни одного изначально. Существует реализация с открытым исходным кодом, используемая большинством проектов (например, nHibernate), называемая Iesi.Collections. Здесь статья CodeProject об этом:

http://www.codeproject.com/KB/recipes/sets.aspx

Ответ 4

Вы проверили HashSet в 3.5?

Ответ 5

Я не думаю, что у С# есть что-то встроенное, но я знаю, что в сети есть пара реализаций. Есть также хорошие статьи о таких вещах:

Это часть 6 серии по эффективному представлению структуры данных. Эта часть фокусируется на представлении множеств в С#.

Реализация набора коллекции
Реализация заданного класса
Еще одна реализация заданного класса

И наконец...

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