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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hashtable, структура в значении хеша... 
:(
    Опции темы
logicStar
Дата 21.8.2011, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Задача, поместить структуру в хеш и потом обращаться к ее полям через значение хеш.
Проблема в том что не могу обратится к полям структуры. Вот пример кода:
Код

 public Hashtable hash= new Hashtable();
struct _mesage 
        {
          public  string content;
          public  int number;
          public  bool epty;
        }
_mesage mesage ;
            mesage.content = "";
            mesage.epty = true;
            mesage.number = 0;
            hash.Add("сообщение0", mesage);

foreach (DictionaryEntry element in hash)
            {
                if (hash.Value.number > maxNunber)// тут надо обратиться к полю number структуры, но при выполнении кода вылетает ошибка
                {
                 
                }
            }


Это сообщение отредактировал(а) logicStar - 21.8.2011, 18:11
PM MAIL   Вверх
Ky7m
Дата 21.8.2011, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(logicStar @ 21.8.2011,  18:10)
Задача, поместить структуру в хеш и потом обращаться к ее полям через значение хеш.
Проблема в том что не могу обратится к полям структуры.

Наверно закралась ошибка в том, что надо обратится не к hash.Value.number, а к element. Ну это если правильно понял вашу логику.

Это сообщение отредактировал(а) Ky7m - 21.8.2011, 19:40
PM MAIL ICQ   Вверх
logicStar
Дата 21.8.2011, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да, конечно, обращение через element. 
Код

foreach (DictionaryEntry element in hash)
            {
                if (element .Value.number > maxNunber)// тут надо обратиться к полю number структуры, но при выполнении кода вылетает ошибка
                {
                 
                }
            }

PM MAIL   Вверх
Voyager
Дата 23.8.2011, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А какая ошибка? Наверняка там все написано, про приведение типов и т.д. Попробуйте перевести онлайн-переводчиком, помогает!
PM   Вверх
VirusUZ
  Дата 25.8.2011, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 9.4.2010
Где: Узбекистан, Навои й обл.

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



Готовый Алгоритм есть

Код

using System;
using System.Collections;
using conf.App_Code.Domain;
using conf.App_Code.Utils;
namespace conf.App_Code.Rpc {
    public class Chat : Users {
        Users user;
        public Chat( Users user ) { this.user = user; }
        int chatID = 0;
        int statusID;
        string fileName;
        public string FileName {
            get { return fileName; }
            set { fileName = value; }
            }
        public int ChatID {
            get { return chatID; }
            set { chatID = value; }
            }
        public int StatusID {
            get { return statusID; }
            set { statusID = value; }
            }
       [color=red] Hashtable h = new Hashtable();[/color]
        //Hashtable dat = new Hashtable();
        string registr = "";
        public void reg() {
            chatID = user.Id;
            //try
                {
                h.Add("" + user.Id, "Connect...");
                }
            //catch { h[di] = "1"; }
            }
        public void send(string uid, string message ) {
            if (registr.Contains("" + uid + ",")) {
                h[uid] = "" + h[uid] + "\n" + message;
                //dat[uid] = "" + dat[uid] + "\n" + DateTime.Now;
                } else {
                registr += "" + uid + ",";
                try {
                    h.Add(uid, message);
                    //dat.Add(uid, DateTime.Now);
                    } catch {
                    h[uid] = "" + h[uid] + "\n" + message;
                    //dat[uid] = "" + dat[uid] + "\n" + DateTime.Now;
                    }
                }
            }
        public string[] receive() {
            foreach (string s in registr.Split(',')) {
                string temp = "" + h[s];
                //string vaqt = "" + dat[s];
                registr.Replace(s + ',', "");
                h.Remove(s);
                //dat.Remove(s);
                return new string[] { s, temp };
                //                return new string[] { s, temp, vaqt };
                }
            return null;
            }
        public ArrayList getChatListOnLine(string endDate) {
            return ChatAdapter.getListOnLine(user.Id, endDate);
            }
        public ArrayList getChatList( ) {
            return ChatAdapter.getList(user.Id);
            }
        public class ChatList : MarshalByRefObject {
            int uid;
            public int Uid {
                get { return uid; }
                set { uid = value; }
                }
            int depId;
            public int DepId {
                get { return depId; }
                set { depId = value; }
                }
            string dep_uname;
            public string Dep_uname {
                get { return dep_uname; }
                set { dep_uname = value; }
                }
            string dep_rname;
            public string Dep_rname {
                get { return dep_rname; }
                set { dep_rname = value; }
                }
            string dep_ename;
            public string Dep_ename {
                get { return dep_ename; }
                set { dep_ename = value; }
                }
            string userName;
            public string UserName {
                get { return userName; }
                set { userName = value; }
                }
            string endDate;
            public string EndDate {
                get { return endDate; }
                set { endDate = value; }
                }
            public ChatList() { }
            public ChatList( object[] obj ) {
                if (obj != null) {
                    Get g = new Get(obj);
                    depId = g.getInt32();
                    uid = g.getInt32();
                    dep_uname = g.getString();
                    dep_rname = g.getString();
                    dep_ename = g.getString();
                    userName = g.getString();
                    endDate = g.getString();
                    }
                }
            public ArrayList Convertor( ArrayList ar ) {
                int i = -1, n = ar.Count;
                while (++i < n) {
                    ar[i] = new ChatList((object[])ar[i]);
                    }
                return ar;
                }
            }
        }
    }


Это сообщение отредактировал(а) VirusUZ - 25.8.2011, 15:14

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  Users.cs 5,93 Kb
--------------------
Virus
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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