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

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Очень неудобно обращаться к вам с такой просьбой, но на данный момент у меня нет другого выхода. Учу C#, но без практики все время понемногу забываю все прочитанное. Решил попробовать устроиться в компанию на стажировку. Там дали задание. Я не прошу вас его сделать для меня!!! Я прошу просто дать направление, в котором копать. Что нужно использовать, про что нужно почитать и как лучше реализовать. Прошу помочь, если для вас это не будет слишком сложным Спроектируйте и реализуйте класс-коллекцию для хранения элементов, имеющих уникальный составной ключ [Id, Name] (Id и Name – компоненты ключа, могу быть произвольного типа). Вы можете использовать любую встроенную коллекцию .NET Framework. Предоставьте необходимые с вашей точки зрения методы для этой коллекции, а так же методы для быстрого получения элементов по их Id ИЛИ Name. Программа должна содержать пример использования коллекции с идентификатором ключа в виде пользовательского типа (т.е. Id в ключе – UserType, объекты UserType должны сравниваться по значению). *Вот этот абзац вообще не понимаю* Дополнительно: Создайте потокобезопасную реализацию этой коллекции (не использовать коллекции из пространства имён System.Collections.Concurrent). Заранее спасибо. Я пока еще новичок в программировании, поэтому прошу тапками не закидывать если что не так =)

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

textual
Листинг программы
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
        
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы