Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как правильно сделать ассоциативный массив? ключ - строка, значение - массив строк 
V
    Опции темы
SelenIT
Дата 29.11.2006, 13:03 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: нет
Всего: 401



Второй день дико туплю над такой с виду элементарной структурой  smile ... видно, сказывается мое "темное прошлое" пэхэпэшника - там над такими вещами задумываться не приходилось... smile

Пытаюсь использовать для внешнего хранилища Hashtable, в нее кладу пары string - ArrayList. Но потом, когда пытаюсь обратиться к элементу этого ArrayList-а по индексу, получаю ошибку "Cannot apply indexing with [] to an expression of type 'object'". Работаю в .NET 1.1.

Как работать с такой структурой по-умному? Или вообще есть другие, более эффективные пути? Заранее спасибо за подсказку.



--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
ivashkanet
Дата 29.11.2006, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



SelenIT, то что ты получил из HashTable имеет тип object. 
Ты должен привести его к типу ArrayList, чтобы иметь возможность доступа к его элементам (вот тут ПХП тебя подвел ).
 smile 
Добавлено...
На всякий случай код:
Код

            Hashtable ht = new Hashtable();
            // -------------------
            object arrayItem = ((ArrayList)ht["weewee"])[121];


Это сообщение отредактировал(а) ivashkanet - 29.11.2006, 14:01
PM MAIL WWW ICQ   Вверх
Mercator
Дата 29.11.2006, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 14.11.2006

Репутация: нет
Всего: 2



Если в студии пишешь, там же вроде как подсказки вылезают, какого типа объект возвращается да и помощь хорошая идет. Так что смелее смотрите на экран и вручную приводите типы, где требуетсяsmile
PM   Вверх
SelenIT
Дата 29.11.2006, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: нет
Всего: 401



ivashkanet, Mercator, спасибо!


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Exception
Дата 30.11.2006, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Ну и извращенцы, блин. Используем дженерики (для .NET 2.0 only):

Код

Dictionary<string, ArrayList> dict = new Dictionary<string, ArrayList>();

dict.Add("aa", new ArrayList());
// ...

ArrayList list = dict["aa"];

PM   Вверх
Дрон
Дата 30.11.2006, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 24
Всего: 93



Цитата(Exception @  30.11.2006,  17:20 Найти цитируемый пост)
Используем дженерики (для .NET 2.0 only):

Так вроде было явно сказано:
Цитата(SelenIT @  29.11.2006,  13:03 Найти цитируемый пост)
Работаю в .NET 1.1.





--------------------
Да. Именно так.
PM   Вверх
ivashkanet
Дата 30.11.2006, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Exception,  smile 

Дрон, ага.


PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.