Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > А что, правда нет множества (Set)?


Автор: Dims 3.11.2008, 18:48
А что, правда в Си-диез нет множества (Set), то есть, коллекции, в которую можно добавлять элементы, проверять наличие, но порядок несущественен и повторов быть не может.

А как же быть? Применять Dictionary?

И как правильно с ним работать? Там вроде немного другое поведение, чем в дажвовском Hashtable. 

Например, в Джава если элемента нет, то возвращается null. А тут выбрасывается исключение. То есть, сперва надо обязательно проверить наличие?

Автор: Bogdan1024 3.11.2008, 18:56
Можно заюзать что-то на основе enum'a.
Код

        [Flags]
        enum Zlo { a = 1, b = 2, c = 4 };
        static void Main(string[] args)
        {
            Zlo z = Zlo.a | Zlo.c;
            System.Console.WriteLine(z);
            System.Console.ReadKey();
        }

Проверять наличие элемента побитовыми операциями.

Автор: QryStaL 3.11.2008, 19:01
Цитата(Dims @  3.11.2008,  18:48 Найти цитируемый пост)
коллекции, в которую можно добавлять элементы, проверять наличие, но порядок несущественен и повторов быть не может.

Неправда =)

Цитата(Dims @  3.11.2008,  18:48 Найти цитируемый пост)
А как же быть?

Использовать Hashtable - если элемента нет, то возвращается null.
В Dictionary сначала надо проверить ContainsKey().

Автор: Dims 3.11.2008, 19:07
Но ведь в Hashtable элемент представляет собой пару. А можно ли сделать одиночные?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)