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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получить значение для HashTable, не может преобразовать в string! 
:(
    Опции темы
Suppir
Дата 12.3.2012, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

            Hashtable monthes = new Hashtable();
            monthes.Add("января", "01");
            monthes.Add("февраля", "02");
            monthes.Add("марта", "03");
            monthes.Add("апреля", "04");
            monthes.Add("мая", "05");
            monthes.Add("июня", "06");
            monthes.Add("июля", "07");
            monthes.Add("августа", "08");
            monthes.Add("сентября", "09");
            monthes.Add("октября", "10");
            monthes.Add("ноября", "11");
            monthes.Add("декабря", "12");


                    Match m3 = Regex.Match(date_code_postfix, "^(\\d{1,2}) *\\.?(января|февраля|марта|апреля|мая|июня|июля|августа|сентября|октября|ноября|декабря|\\d\\d)\\.? *(\\d{4}|\\d{2})[годав \\.]*(.+)");

                    if (m3.Success)
                    { 
                        day = m3.Groups[1].Value;
                        month = m3.Groups[2].Value;    # здесь получается month равен месяцу буквами, а мне его нужно преобразовать в цифры с помощью Hashtable. Как это сделать?
                        year = m3.Groups[3].Value;
                        code_postfix = m3.Groups[4].Value;
                    }


Если пишу вот так:
month = monthes[m3.Groups[2].Value];

то выдает ошибку:
Не удается неявно преобразовать тип "object" в "string". Существует явное преобразование (возможно, пропущено приведение типов)

PM MAIL   Вверх
dextermd
Дата 17.3.2012, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



HashTable хранит ключи и значения в виде обьектов, поэтому полученное значение из HashTable нужно явно преобразовывать в правильный тип:

Код

month = monthes[m3.Groups[2].Value].ToString();

PM MAIL   Вверх
VSB
Дата 19.3.2012, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Не используйте Hashtable, если в этом нет необходимости.
Пользуйтесь Dictionary<TKey, TValue> или SortedDictionary<TKey, TValue>
PM MAIL   Вверх
Dennnis
Дата 27.3.2012, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ну или просто: month = (string)monthes[m3.Groups[2].Value];
--------------------
Get Rich or Die Tryin'
PM   Вверх
techPro
Дата 1.4.2012, 03:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Класс Dictionary<TKey, TValue> в большинстве случаев способен заменить класс Hashtable. С момента выхода 2 версии .NET Framework Microsoft рекомендует использовать обобщённые классы (в данном случае Dictionary<TKey, TValue>) по причине их большего удобства, типовой безопасности и более высокой производительности
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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