Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Как сделать const List


Автор: Competitor 19.4.2007, 18:41
Субж.
Пишу:
Код

private List<string> groupinParametersList = new List<string>();
groupinParametersList.Add("hardwareElementType");
groupinParametersList.Add("hardwareElementDesc");
groupinParametersList.Add("CompoundHardwareType");

switch (queryParameters[0])
                    {
                        case groupinParametersList[0]:
                            ;
                            break;
                        case groupinParametersList[1]:
                            ;
                            break;
                        case groupinParametersList[2]:
                            ;
                            break;
                    }

Не получается.  Пишет: A constant value is expected.
Как сделать список пригодным для использования его элементов в операторе switch?

Автор: Grub 19.4.2007, 19:08
насколько мне известно, то никак. Ведь необходима операция поиска по индексу в примере.  Для ветвления программы используй if(...)

Автор: Naum 19.4.2007, 19:22
Competitor, ИМХО, можо сделать его ReadOnly. Т.е. работать с ним можно будет только в конструкторе того класса, где он объявлен.

Автор: Hurricane 19.4.2007, 20:18
Цитата(Naum @ 19.4.2007,  11:22)
ИМХО, можо сделать его ReadOnly.

Да можно его сделать хоть трижды рид-онли, работать не будет.

List<string>, теперь пытаемся использовать этот самый string для switch-case.

Надо либо if - else if - else (как Grub уже сказал), либо мапить каждый стринг в какой-нить инт и уже его использовать в switch-case.

Автор: HalkaR 19.4.2007, 20:51
Hurricane, как ни обидно но в пунктах switch могут быть только константы :(

Автор: Hurricane 19.4.2007, 21:53
Цитата(HalkaR @ 19.4.2007,  12:51)
Hurricane, как ни обидно но в пунктах switch могут быть только константы :(


Дык я именно это и пытался объяснить с помощью жирных красных букв. Объясняльщик из меня тот еще...

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