Использование коллекции с идентификатором ключа в виде пользовательского типа - 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 }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д