public override bool Equals(Object obj) { if (obj == null || GetType() != obj.GetType()) { return(false); } Crocodile <T> temp = (Crocodile <T>)obj; if (temp == null) { return(false); } else { return(base.Equals(temp)); } //return Name == temp.Name && //BodyLength == temp.BodyLength && //Weight == temp.Weight; }
private static void Users_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { switch (e.Action) { case NotifyCollectionChangedAction.Add: // если добавление Crocodile <string> newCroco = e.NewItems[0] as Crocodile <string>; Console.WriteLine($"Добавлен новый объект: {newCroco.Name}"); break; case NotifyCollectionChangedAction.Remove: // если удаление Crocodile <string> oldCroco = e.OldItems[0] as Crocodile <string>; Console.WriteLine($"Удален объект: {oldCroco.Name}"); break; case NotifyCollectionChangedAction.Replace: // если замена Crocodile <string> replacedCroco = e.OldItems[0] as Crocodile <string>; Crocodile <string> replacingCroco = e.NewItems[0] as Crocodile <string>; Console.WriteLine($"Объект {replacedCroco.Name} заменен объектом {replacingCroco.Name}"); break; } }
public int CompareTo(object obj)// определяет среднию длину тела крокодилов заданного вида { Crocodile <T> CR = obj as Crocodile <T>; if (CR != null) { if (this.BodyLength < CR.BodyLength) { return(-1); } else if (this.BodyLength > CR.BodyLength) { return(1); } else { return(0); } } else { throw new Exception("Параметр должен быть типа Crocodile"); } }
static void Main(string[] args) { ArrayList <string> list = new ArrayList <string>() { "A", "B", "C", "D", "E", "F", "J", "H", "I", "G", "K", "L" }; // перебор значений foreach (object o in list) { Console.Write($"{o} "); } //количество элементов Console.WriteLine($"\nколичество элементов: {list.Count}"); Console.WriteLine($"\n - заносим в список элемент 'FF' "); list.Add("FF"); // заносим в список строковый массив // перебор значений foreach (object o in list) { Console.Write($"{o} "); } // удаляем первый элемент Console.WriteLine($"\n{list[0]} - удаляем первый элемент"); list.RemoveAt(0); // перебор значений for (int i = 0; i < list.Count; i++) { Console.Write($"{list[i]} "); } // получение элемента по индексу Console.WriteLine($"\n{list[0]} - получение элемента по индексу [0]"); //поиск в коллекции значения if (list.Contains("E")) { // перебор значений foreach (object o in list) { if (o == "E") { Console.Write($"\n{o} - 'E' поиск успешен"); } else { Console.Write($"\n{o} - не 'E' "); } } } Console.WriteLine($"\n"); var hs = new System.Collections.Generic.HashSet <long>(); for (long i = 0; i < 10; i++) { hs.Add(i); } foreach (var item in hs) { Console.Write($" {item}"); } Console.WriteLine(); for (int i = 0; i < hs.Count; i++) { hs.Remove(i + 1); } foreach (var item in hs) { Console.Write($" {item}"); } Console.WriteLine("\n"); var sl = new System.Collections.Generic.SortedList <long, string>(); foreach (var item in hs) { sl.Add(item, "Book"); } foreach (var item in sl) { Console.Write($" {item}"); } Console.WriteLine("\n"); foreach (var item in sl) { if (item.Key == 9) { Console.WriteLine($"Совпадение по запросу: 9 - найдено! ({item.Key})"); } else { Console.WriteLine($"Совпадение по запросу: 9 - не найдено!!! ({item.Key})"); } } Console.WriteLine("\n"); var CrocoSortedList = new System.Collections.Generic.SortedList <float, Crocodile <string> >(); CrocoSortedList.Add(0, new Crocodile <string>("Crocodile1", 4)); CrocoSortedList.Add(1, new Crocodile <string>("Crocodile2", 3)); CrocoSortedList.Add(2, new Crocodile <string>("Crocodile3", 2)); CrocoSortedList.Add(3, new Crocodile <string>("Crocodile4", 5)); CrocoSortedList.Add(4, new Crocodile <string>("Crocodile5", 7)); CrocoSortedList.Add(5, new Crocodile <string>("Crocodile6", 6)); CrocoSortedList.Add(6, new Crocodile <string>("Crocodile7", 9)); CrocoSortedList.Add(7, new Crocodile <string>("Crocodile8", 8)); CrocoSortedList.Add(8, new Crocodile <string>("Crocodile9", 2)); CrocoSortedList.Add(9, new Crocodile <string>("Crocodile10", 1)); // Вывод значения полей объектов на консоль. Используется перегруженный метод ToString() класса Crocodile<T> . foreach (object o in CrocoSortedList) { Console.Write($"\n{o} "); } Console.WriteLine("\n"); //поиск в коллекции значения foreach (var item in CrocoSortedList) { if (item.Value == CrocoSortedList[3]) { Console.WriteLine($"Совпадение по запросу: Crocodile4 - найдено! ({item.Key})"); } else { Console.WriteLine($"Совпадение по запросу: Crocodile4 - не найдено!!! ({item.Key})"); } } Console.WriteLine("\n"); var CrocoHashSet = new System.Collections.Generic.HashSet <Crocodile <string> >(); foreach (var item in CrocoSortedList) { CrocoHashSet.Add(item.Value); } // Вывод значения полей объектов на консоль. Используется перегруженный метод ToString() класса Crocodile<T> . foreach (object o in CrocoHashSet) { Console.Write($"\n{o} "); } Console.WriteLine("\n"); // Удаляем элемент с идентификационным номером 3. Компаратор будет сравнивать объекты именно по идентификационному номеру соответствие имени объекта не учитывается. Console.WriteLine("\nУдаляем элемент с идентификатором(\"3\")"); CrocoHashSet.Remove(new Crocodile <string>("Crocodile4", 5)); // Вывод значения полей объектов на консоль. Используется перегруженный метод ToString() класса Crocodile<T> . foreach (object o in CrocoHashSet) { Console.Write($"\n{o} "); } Console.WriteLine("\n"); //------------------------------------------------------------------------------------------------------- ObservableCollection <Crocodile <string> > crocodiles = new ObservableCollection <Crocodile <string> > { new Crocodile <string>("Crocodile4", 5), new Crocodile <string>("Crocodile11", 6), new Crocodile <string>("Crocodile12", 7) }; crocodiles.CollectionChanged += Users_CollectionChanged; crocodiles.Add(new Crocodile <string>("Crocodile13", 5)); crocodiles.RemoveAt(1); crocodiles[0] = new Crocodile <string>("Crocodile14", 6); foreach (Crocodile <string> crocodile in crocodiles) { Console.WriteLine(crocodile.Name); } Console.ReadLine(); }