Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
7 / 7 / 1
Регистрация: 02.11.2011
Сообщений: 56
1

Использование коллекции с идентификатором ключа в виде пользовательского типа

27.03.2012, 08:36. Показов 4658. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте уважаемые форумчане. Очень неудобно обращаться к вам с такой просьбой, но на данный момент у меня нет другого выхода.
Учу C#, но без практики все время понемногу забываю все прочитанное. Решил попробовать устроиться в компанию на стажировку. Там дали задание.

Я не прошу вас его сделать для меня!!! Я прошу просто дать направление, в котором копать. Что нужно использовать, про что нужно почитать и как лучше реализовать. Прошу помочь, если для вас это не будет слишком сложным

Спроектируйте и реализуйте класс-коллекцию для хранения элементов, имеющих уникальный составной ключ [Id, Name] (Id и Name – компоненты ключа, могу быть произвольного типа). Вы можете использовать любую встроенную коллекцию .NET Framework.
Предоставьте необходимые с вашей точки зрения методы для этой коллекции, а так же методы для быстрого получения элементов по их Id ИЛИ Name.

Программа должна содержать пример использования коллекции с идентификатором ключа в виде пользовательского типа (т.е. Id в ключе – UserType, объекты UserType должны сравниваться по значению). *Вот этот абзац вообще не понимаю*

Дополнительно: Создайте потокобезопасную реализацию этой коллекции (не использовать коллекции из пространства имён System.Collections.Concurrent).

Заранее спасибо. Я пока еще новичок в программировании, поэтому прошу тапками не закидывать если что не так =)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2012, 08:36
Ответы с готовыми решениями:

Организация коллекции объектов пользовательского класса
Есть некий пользовательский класс Mob. И есть класс MobAssistant, существующий для управления...

Можно ли присвоить объекту основного типа значение объекта пользовательского типа?
Правильно ли я понимаю, что SomeClass obj; int x = obj; или SomeClass obj; int x = 5 +...

Как изменить имя ключа в коллекции?
Есть коллекция Dictionary<String, Process> PrcDic; (Process - самодельный класс). А как...

Как получить название ключа в коллекции
Делаю свой класс который бы, имитировал класс Scripting.Dictionary остановился на функции...

3
35 / 35 / 1
Регистрация: 14.01.2011
Сообщений: 111
27.03.2012, 09:08 2
по хорошему создай класс элемента коллекции имеющий поля id, name
потом создай класс коллекции, либо наследуй его от List<класс элемента>, либо хранящий в себе список элементов, или CollectionBase что практически одно и тоже.
пример класса коллекции:
в данном случае TabItem класс элемента
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
public class ItemsCollection : CollectionBase
    {
        
        #region Constructor
        public ItemsCollection()
        { }
        #endregion
        #region this[int indx]
        public TabItem this[int indx]
        {
            get
            {
                if (indx < 0 || indx >= List.Count)
                {
                    return null;
                }
                return (TabItem)List[indx];
            }
            set
            {
                List[indx] = value;
            }
        }
        #endregion
        #region Add, AddRange
        public virtual void Add(TabItem itm)
        {
            List.Add(itm);
        }
        public virtual void AddRange(TabItem[] itms)
        {
            for (int i = 0; i < itms.Length; i++)
            {
                List.Add(itms[i]);
            }
        }
        #endregion
        #region Remove
        public virtual void Remove(TabItem item)
        {
            List.Remove(item);
        }
        #endregion
        #region IndexOf
        public virtual int IndexOf(TabItem item)
        {
            return List.IndexOf(item);
        }
        #endregion
        #region Contains
        public virtual bool Contains(TabItem item)
        {
            return List.Contains(item);
        }
        #endregion
        
    }
что то в таком духе
1
7 / 7 / 1
Регистрация: 02.11.2011
Сообщений: 56
27.03.2012, 09:19  [ТС] 3
Спасибо, щас попробую что-нибудь сделать)
0
ssWeterss
19.09.2012, 12:26 4
от CollectionBase в данной задаче нельзя наследовать, так как это неверная базовая структура данных для коллекции с точки зрения эффективности поиска.
19.09.2012, 12:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.09.2012, 12:26
Помогаю со студенческими работами здесь

Является ли название типа данных определённый разработчиком языка стандартным идентификатором?
Является ли название типа данных определённый разработчиком языка стандартным идентификатором? Так...

Вывод пользовательского типа
Всем привет. В плюсах практикуется такой подход к выводу объекта в поток: std::ostream&amp;...

Использование пользовательского элемента управления
Создал я вот библиотеку классов, потом создал в ней свой пользовательский элемент. Как его теперь...

Приведение пользовательского типа к char*
Можно ли как то посмотреть байтовое представление пользовательского типа? Приведения к типу char*...

JSON для пользовательского типа
Привет всем, что мне нужно, мне нужно как-то запихнуть в JSON свой тип данный, который называеться...

Создание пользовательского типа данных
Здравствуйте, мне нужно создать свой тип данных,чтобы он мог принимать ограниченное количество...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru