2009-07-25 2 views
2

Можно создать дубликат:
Is there a “Set” data structure in .Net?Есть ли установленный тип в .NET 2.0?

Дубликат: это дубликат "Is there a “Set” data structure in .Net?". Закройте его как дубликат и укажите дальнейшие ответы на предыдущий вопрос.

Есть ли общая коллекция, аналогичная шаблону STL set<T> в .NET framework?

Если нет, как бы вы реализовали неупорядоченный набор уникальных строк? Полагаю, я мог бы использовать Dictionary<string, int> и просто использовать ключи, но это кажется вонючим.

EDIT: извините, я должен уточнить, что это для .NET 2,0

ответ

8

До .NET3.5, нет (не спрашивайте меня, почему им потребовалось так много время, чтобы получить эти основы добавили. (Там еще нет кучи класса, AFAIK. Классы коллекции .NET удивительно тусклые).

в 3.5, у вас есть HashSet<T>. это больше похоже на TR1 unordered_set чем std::set, хотя, в том, что это неупорядоченное, где std::set использует древовидную структуру внутри.

конечно, есть несколько библиотек третьих сторон, предлагающих, чтобы исправить эти недостатки .

У меня есть l окутал в C5 (как предписано Пратиком) раньше, но никогда не использовал его. Но, похоже, это очень хорошее качество и имеет класс Set.

0

С .net 3.5, есть HashSet<T>, который реализует комплект. Не уверен, что он полностью соответствует установленному C++.

4

Я могу предложить The C5 Generic Collection Library, который имеет класс сбора набора хешей среди многих других.

+0

+1 для упоминания внедрения .NET 2.0 –

1

Ответ на ваш вопрос: ДА. Ознакомьтесь с замечательной библиотекой Jeff Richter Power Collections для некоторых наиболее часто используемых типов коллекции STL для .NET. На несвязанной ноте он также имеет библиотеку Power Threading

+0

Вы избили меня! Я удалил свой ответ, указав Power Collections. Я второй Абхиджит, думая, что Power Collections - это библиотека, которую вы ищете. –

+0

Ха! :-) BTW Рихтер скалы! –