static void Main(string[] args) { SortedList sl = new SortedList(); Library lb1 = new Library("A", 1950, 52); Library lb2 = new Library("B", 1990, 50); ShipComp sc1 = new ShipComp("C", 1950, 200); ShipComp sc2 = new ShipComp("D", 1975, 350); InsuranceComp ic1 = new InsuranceComp("E", 1990, 52); Plant pl1 = new Plant("F", 2000, 300); Plant pl2 = new Plant("G", 1950, 500); Organization org1 = new Organization("H", 1980); sl.Add(lb1.Name + "-" + lb1.Founded, lb1); sl.Add(lb2.Name + "-" + lb2.Founded, lb2); sl.Add(sc1.Name + "-" + sc1.Founded, sc1); sl.Add(sc2.Name + "-" + sc2.Founded, sc2); sl.Add(ic1.Name + "-" + ic1.Founded, ic1); sl.Add(pl1.Name + "-" + pl1.Founded, pl1); sl.Add(pl2.Name + "-" + pl2.Founded, pl2); sl.Add(org1.Name + "-" + org1.Founded, org1); int operation; bool stop = false; #region demo1 ListFunctions(); do { Console.WriteLine("Введите номер нужной операции"); operation = EnterIntNumber(); switch (operation) { case 0: { Console.WriteLine("Работа завершена"); stop = true; break; } case 1: { EngsAtEveryPlant(sl); break; } case 2: { int libs = NumberOfLibs(sl); Console.WriteLine($"В коллекции {libs} библиотек"); break; } case 3: { Console.WriteLine($"Сумма страховых фондов = {InshFondSum(sl)} млн"); break; } case 4: { foreach (DictionaryEntry x in sl) { Organization temp = (Organization)x.Value; temp.VShow(); Console.WriteLine(); } break; } case 5: { AddElement(ref sl); break; } case 6: { DeleteElement(ref sl); break; } default: { Console.WriteLine("Операции с данным номером не существует. Введите другой номер"); break; } } } while (!stop); Console.WriteLine("Для продолжения нажмите Enter"); Console.ReadLine(); Console.Clear(); #endregion List <Organization> sl2 = new List <Organization>(); sl2.Add(lb1); sl2.Add(lb2); sl2.Add(sc1); sl2.Add(sc2); sl2.Add(ic1); sl2.Add(pl1); sl2.Add(pl2); sl2.Add(org1); stop = false; #region demo2 ListFunctions(); do { Console.WriteLine("Введите номер нужной операции"); operation = EnterIntNumber(); switch (operation) { case 0: { Console.WriteLine("Работа завершена"); stop = true; break; } case 1: { EngsAtEveryPlant(sl2); break; } case 2: { int libs = NumberOfLibs(sl2); Console.WriteLine($"В коллекции {libs} библиотек"); break; } case 3: { Console.WriteLine($"Сумма страховых фондов = {InshFondSum(sl2)} млн"); break; } case 4: { foreach (Organization x in sl2) { x.VShow(); Console.WriteLine(); } break; } case 5: { AddElement(ref sl2); break; } case 6: { DeleteElement(ref sl2); break; } default: { Console.WriteLine("Операции с данным номером не существует. Введите другой номер"); break; } } } while (!stop); Console.WriteLine("Для продолжения нажмите Enter"); Console.ReadLine(); Console.Clear(); #endregion #region demo 1 + 2 SortedList slClone = (SortedList)sl.Clone(); slClone.Add("zero", 0); Console.WriteLine("Поиск добавленного в клон коллекции элемента:"); if (sl.ContainsValue(0)) { Console.WriteLine("Элемент найден в оригинальной коллекции"); } else { Console.WriteLine("Элемент не найден в оригинальной коллекции"); } if (slClone.ContainsValue(0)) { Console.WriteLine("Элемент найден в клоне коллекции"); } else { Console.WriteLine("Элемент не найден в клоне коллекции"); } Console.WriteLine(); Plant extraplant = new Plant(); List <Organization> sl2Clone = new List <Organization>(); foreach (Organization x in sl2) { Organization clone = (Organization)x.Clone(); sl2Clone.Add(clone); } sl2Clone.Add(extraplant); Plant exPlantClone = (Plant)extraplant.Clone(); Console.WriteLine("Поиск добавленного в клон коллекции элемента:"); if (sl.ContainsValue(exPlantClone)) { Console.WriteLine("Элемент найден в оригинальной коллекции"); } else { Console.WriteLine("Элемент не найден в оригинальной коллекции"); } if (slClone.ContainsValue(exPlantClone)) { Console.WriteLine("Элемент найден в клоне коллекции"); } else { Console.WriteLine("Элемент не найден в клоне коллекции"); } Console.WriteLine("Для продолжения нажмите Enter"); Console.ReadLine(); #endregion #region demo3 int size = 100; TestCollections tc = new TestCollections(size); Stopwatch stw = new Stopwatch(); Organization[] arr = tc.Link.ToArray(); Organization firstOrg = (Organization)arr[0].Clone(); Organization middleOrg = (Organization)arr[size / 2].Clone(); Organization lastOrg = (Organization)arr[size - 1].Clone(); Organization absOrg = new Organization(); Console.WriteLine("Queue<Organization>"); stw.Start(); if (tc.Link.Contains(firstOrg)) { Console.WriteLine($"Первый элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Первый элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Restart(); if (tc.Link.Contains(middleOrg)) { Console.WriteLine($"Средний элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Средний элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Restart(); if (tc.Link.Contains(lastOrg)) { Console.WriteLine($"Последний элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Последний элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Restart(); if (tc.Link.Contains(absOrg)) { Console.WriteLine($"Элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Reset(); Console.WriteLine(); string[] arr1 = tc.Key.ToArray(); string firstStr = (string)arr1[0].Clone(); string middleStr = (string)arr1[size / 2].Clone(); string lastStr = (string)arr1[size - 1].Clone(); string absStr = "???"; Console.WriteLine("Queue<string>"); stw.Start(); if (tc.Key.Contains(firstStr)) { Console.WriteLine($"Первый элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Первый элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Restart(); if (tc.Key.Contains(middleStr)) { Console.WriteLine($"Средний элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Средний элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Restart(); if (tc.Key.Contains(lastStr)) { Console.WriteLine($"Последний элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Последний элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Restart(); if (tc.Key.Contains(absStr)) { Console.WriteLine($"Элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Reset(); Console.WriteLine(); Console.WriteLine("SortedDictionary<Organization, Library> /// ContainsKey"); stw.Start(); if (tc.Coll1.ContainsKey(firstOrg)) { Console.WriteLine($"Первый элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Первый элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Restart(); if (tc.Coll1.ContainsKey(middleOrg)) { Console.WriteLine($"Средний элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Средний элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Restart(); if (tc.Coll1.ContainsKey(lastOrg)) { Console.WriteLine($"Последний элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Последний элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Restart(); if (tc.Coll1.ContainsKey(absOrg)) { Console.WriteLine($"Элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Reset(); Console.WriteLine(); Library[] arr2 = new Library[size]; tc.Coll1.Values.CopyTo(arr2, 0); Library firstLib = (Library)arr2[0].Clone(); Library middleLib = (Library)arr2[size / 2].Clone(); Library lastLib = (Library)arr2[size - 1].Clone(); Library absLib = new Library(); Console.WriteLine("SortedDictionary<Organization, Library> /// ContainsValue"); stw.Start(); if (tc.Coll1.ContainsValue(firstLib)) { Console.WriteLine($"Первый элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Первый элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Restart(); if (tc.Coll1.ContainsValue(middleLib)) { Console.WriteLine($"Средний элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Средний элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Restart(); if (tc.Coll1.ContainsValue(lastLib)) { Console.WriteLine($"Последний элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Последний элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Restart(); if (tc.Coll1.ContainsValue(absLib)) { Console.WriteLine($"Элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Reset(); Console.WriteLine(); Console.WriteLine("SortedDictionary<string, Library>"); stw.Start(); if (tc.Coll2.ContainsKey(firstStr)) { Console.WriteLine($"Первый элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Первый элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Restart(); if (tc.Coll2.ContainsKey(middleStr)) { Console.WriteLine($"Средний элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Средний элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Restart(); if (tc.Coll2.ContainsKey(lastStr)) { Console.WriteLine($"Последний элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Последний элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Restart(); if (tc.Coll2.ContainsKey(absStr)) { Console.WriteLine($"Элемент найден, время поиска {stw.ElapsedTicks}"); } else { Console.WriteLine($"Элемент не найден, время поиска {stw.ElapsedTicks}"); } stw.Reset(); #endregion Console.Readline(); }
public static void MenuStack(TestCollections collections, Stack <Test> StackTest, Stack <string> StackString, Dictionary <string, Test> DictString, Dictionary <Test, Test> DictTest) { int choice = -1; while (choice != 5) { Console.WriteLine("1. Добавить элемент"); Console.WriteLine("2. Удалить элемент"); Console.WriteLine("3. Печать"); Console.WriteLine("4. Измерение времени поиска"); Console.WriteLine("5. Назад"); bool ok = int.TryParse(Console.ReadLine(), out choice); if (!ok) { do { Console.WriteLine("Проверьте правильность ввода"); ok = int.TryParse(Console.ReadLine(), out choice); } while (!ok || choice < 1 || choice > 5); } switch (choice) { case 1: Console.WriteLine("Введите ключ"); string key = Console.ReadLine(); if (StackString.Contains(key)) { Console.WriteLine("Данный ключ уже существует. Попробуйте ещё раз"); key = Console.ReadLine(); } while (StackString.Contains(key)) { ; } Random r = new Random(); int d = r.Next(1, 30); int mo = r.Next(1, 12); int ma = r.Next(1, 10); int n = r.Next(1, 100); int d1 = r.Next(1, 30); int mo1 = r.Next(1, 12); int ma1 = r.Next(1, 10); int n1 = r.Next(1, 100); collections.AddElement(key, new Test(d1, mo1, ma1, n1), new Test(d, mo, ma, n), StackString, StackTest, DictTest, DictString); break; case 2: collections.DeleteElement(StackString, StackTest, DictString, DictTest); break; case 3: collections.Print(StackTest, DictString); break; case 4: collections.Time(StackString, StackTest, DictTest, DictString); break; case 5: Console.Clear(); choice = 5; break; } } }
public static void ThirdTask() { const int size = 10; TestCollections collection = new TestCollections(size); Console.WriteLine("listPeople: "); PrintList(collection.listPeople); Console.WriteLine(""); Console.WriteLine("listString: "); PrintList(collection.listString); Console.WriteLine(""); Console.WriteLine("dictPeople: "); PrintDict(collection.dictPeople); Console.WriteLine(""); Console.WriteLine("dictString: "); PrintDict(collection.dictString); Console.WriteLine(""); Console.WriteLine("--------------------------------"); // Добавление элемента Console.WriteLine("Добавление элемента"); Console.WriteLine(""); Employee Employee = new Employee(collection.GetRandomName(), collection.GetRandomNum()); collection.Add(Employee); Console.WriteLine("--------------------------------"); // Печать listPeople Console.WriteLine("listPeople:"); PrintList(collection.listPeople); Console.WriteLine(""); // Печать listString Console.WriteLine("listString:"); PrintList(collection.listString); Console.WriteLine(""); // Печать dictPeople Console.WriteLine("dictPeople:"); PrintDict(collection.dictPeople); Console.WriteLine(""); // Печать dictString Console.WriteLine("dictString:"); PrintDict(collection.dictString); Console.WriteLine(""); Console.WriteLine("--------------------------------"); // Удаление элемента Console.WriteLine("Удаление элемента"); Console.WriteLine(""); collection.Remove(); Console.WriteLine("--------------------------------"); // Печать listPeople Console.WriteLine("listPeople:"); PrintList(collection.listPeople); Console.WriteLine(""); // Печать listString Console.WriteLine("listString:"); PrintList(collection.listString); Console.WriteLine(""); // Печать dictPeople Console.WriteLine("dictPeople:"); PrintDict(collection.dictPeople); Console.WriteLine(""); // Печать dictString Console.WriteLine("dictString:"); PrintDict(collection.dictString); Console.WriteLine(""); Console.WriteLine("-------------------------------"); Stopwatch stopWatch = new Stopwatch(); //Поиск среди коллекций <Tkey> Console.WriteLine("Поиск среди коллекций <TKey>\n"); Console.Write("Время поиска первого объекта в коллекции List<TKey>: "); stopWatch.Start(); if (collection.listPeople.Contains(collection.firstObject.BasePerson)) { stopWatch.Stop(); Console.WriteLine("Найден; " + stopWatch.ElapsedTicks); } else { stopWatch.Stop(); Console.WriteLine("НЕ найден; " + stopWatch.ElapsedTicks); } Console.Write("Время поиска первого объекта в коллекции Dictionary<TKey, TValue>: "); stopWatch.Restart(); if (collection.dictPeople.ContainsKey(collection.firstObject.BasePerson)) { stopWatch.Stop(); Console.WriteLine("Найден; " + stopWatch.ElapsedTicks); } else { stopWatch.Stop(); Console.WriteLine("НЕ найден; " + stopWatch.ElapsedTicks); } Console.Write("TValue Время поиска первого объекта в коллекции Dictionary<TKey, TValue>: "); stopWatch.Restart(); if (collection.dictPeople.ContainsValue(collection.firstObject)) { stopWatch.Stop(); Console.WriteLine("Найден; " + stopWatch.ElapsedTicks); } else { stopWatch.Stop(); Console.WriteLine("НЕ найден; " + stopWatch.ElapsedTicks); } Console.Write("Время поиска среднего объекта в коллекции List<TKey>: "); stopWatch.Restart(); if (collection.listPeople.Contains(collection.middleObject.BasePerson)) { stopWatch.Stop(); Console.WriteLine("Найден; " + stopWatch.ElapsedTicks); } else { stopWatch.Stop(); Console.WriteLine("НЕ найден; " + stopWatch.ElapsedTicks); } Console.Write("Время поиска среднего объекта в коллекции Dictionary<TKey, TValue>: "); stopWatch.Restart(); if (collection.dictPeople.ContainsKey(collection.middleObject.BasePerson)) { stopWatch.Stop(); Console.WriteLine("Найден; " + stopWatch.ElapsedTicks); } else { stopWatch.Stop(); Console.WriteLine("НЕ найден; " + stopWatch.ElapsedTicks); } collection.dictPeople.ContainsValue(collection.middleObject); Console.Write("TValue Время поиска среднего объекта в коллекции Dictionary<TKey, TValue>: "); stopWatch.Restart(); if (collection.dictPeople.ContainsValue(collection.middleObject)) { stopWatch.Stop(); Console.WriteLine("Найден; " + stopWatch.ElapsedTicks); } else { stopWatch.Stop(); Console.WriteLine("НЕ найден; " + stopWatch.ElapsedTicks); } Console.Write("Время поиска последнего объекта в коллекции List<TKey>: "); stopWatch.Restart(); if (collection.listPeople.Contains(collection.lastObject.BasePerson)) { stopWatch.Stop(); Console.WriteLine("Найден; " + stopWatch.ElapsedTicks); } else { stopWatch.Stop(); Console.WriteLine("НЕ найден; " + stopWatch.ElapsedTicks); } Console.Write("Время поиска последнего объекта в коллекции Dictionary<TKey, TValue>: "); stopWatch.Restart(); if (collection.dictPeople.ContainsKey(collection.lastObject.BasePerson)) { stopWatch.Stop(); Console.WriteLine("Найден; " + stopWatch.ElapsedTicks); } else { stopWatch.Stop(); Console.WriteLine("НЕ найден; " + stopWatch.ElapsedTicks); } Console.Write("TValue Время поиска последнего объекта в коллекции Dictionary<TKey, TValue>: "); stopWatch.Restart(); if (collection.dictPeople.ContainsValue(collection.lastObject)) { stopWatch.Stop(); Console.WriteLine("Найден; " + stopWatch.ElapsedTicks); } else { stopWatch.Stop(); Console.WriteLine("НЕ найден; " + stopWatch.ElapsedTicks); } // // // // // // //Поиск среди коллекций <string> Console.WriteLine("\nПоиск среди коллекций <string>\n"); Console.Write("Время поиска первого объекта в коллекции List<string>: "); stopWatch.Start(); if (collection.listString.Contains(collection.firstObject.BasePerson.ToString())) { stopWatch.Stop(); Console.WriteLine("Найден; " + stopWatch.ElapsedTicks); } else { stopWatch.Stop(); Console.WriteLine("НЕ найден; " + stopWatch.ElapsedTicks); } Console.Write("Время поиска первого объекта в коллекции Dictionary<string, TValue>: "); stopWatch.Restart(); if (collection.dictString.ContainsKey(collection.firstObject.BasePerson.GetHashCode().ToString())) { stopWatch.Stop(); Console.WriteLine("Найден; " + stopWatch.ElapsedTicks); } else { stopWatch.Stop(); Console.WriteLine("НЕ найден; " + stopWatch.ElapsedTicks); } Console.Write("Время поиска среднего объекта в коллекции List<string>: "); stopWatch.Restart(); if (collection.listString.Contains(collection.middleObject.BasePerson.ToString())) { stopWatch.Stop(); Console.WriteLine("Найден; " + stopWatch.ElapsedTicks); } else { stopWatch.Stop(); Console.WriteLine("НЕ найден; " + stopWatch.ElapsedTicks); } Console.Write("Время поиска среднего объекта в коллекции Dictionary<string, TValue>: "); stopWatch.Restart(); if (collection.dictString.ContainsKey(collection.middleObject.BasePerson.GetHashCode().ToString())) { stopWatch.Stop(); Console.WriteLine("Найден; " + stopWatch.ElapsedTicks); } else { stopWatch.Stop(); Console.WriteLine("НЕ найден; " + stopWatch.ElapsedTicks); } Console.Write("Время поиска последнего объекта в коллекции List<string>: "); stopWatch.Restart(); if (collection.listString.Contains(collection.lastObject.BasePerson.ToString())) { stopWatch.Stop(); Console.WriteLine("Найден; " + stopWatch.ElapsedTicks); } else { stopWatch.Stop(); Console.WriteLine("НЕ найден; " + stopWatch.ElapsedTicks); } Console.Write("Время поиска последнего объекта в коллекции Dictionary<string, TValue>: "); stopWatch.Restart(); if (collection.dictString.ContainsKey(collection.lastObject.BasePerson.GetHashCode().ToString())) { stopWatch.Stop(); Console.WriteLine("Найден; " + stopWatch.ElapsedTicks); } else { stopWatch.Stop(); Console.WriteLine("НЕ найден; " + stopWatch.ElapsedTicks); } Console.WriteLine("-------------------------------"); Console.WriteLine("-------------------------------"); }
static void Task3() { int length = ReadInt(3, 1000, "=== Введите размер коллекции ==="); TestCollections testCollection = new TestCollections(length); testCollection = testCollection.CreateRand(); int userChoice = 1; Stopwatch watch = new Stopwatch(); do { ThirdMenu(); userChoice = ReadInt(0, 7, "=== Выберите действие ==="); switch (userChoice) { case 1: // Вывод testCollection.Show(); break; case 2: // Добавление объекта InsuranceCompany i = new InsuranceCompany(); i.Input(); testCollection.OrganizationQueue.Enqueue(i.BaseOrganization); testCollection.StringQueue.Enqueue(i.BaseOrganization.ToString()); testCollection.OrganizationSDictionary.Add(i.BaseOrganization, i); testCollection.StringSDictionary.Add(i.BaseOrganization.ToString(), i); Console.WriteLine("=== Запись добавлена ==="); break; case 3: // Удаление объекта if (testCollection.Length == 0) { Console.WriteLine("=== Коллекция пустая ==="); } else { Organization p = new Organization(); p = testCollection.OrganizationQueue.Peek(); testCollection.OrganizationQueue.Dequeue(); testCollection.StringQueue.Dequeue(); testCollection.OrganizationSDictionary.Remove(p); testCollection.StringSDictionary.Remove(p.Name); Console.WriteLine("=== Первый элемент в очереди удален ==="); } break; case 4: // Сравнение скорости поиска первого элемента string key = testCollection.CollectionStringFirst; InsuranceCompany insComp = (InsuranceCompany)testCollection.CollectionFirst.Value.Clone(); Console.WriteLine("=== Сравнение скорости поиска первого элемента ==="); watch.Start(); bool result = testCollection.OrganizationQueue.Contains(insComp); watch.Stop(); TimeSpan time = watch.Elapsed; ShowTime("Queue<Organization>, метод Contains", result, time); watch.Restart(); result = testCollection.StringQueue.Contains(key); watch.Stop(); time = watch.Elapsed; ShowTime("Queue<string>, метод Contains", result, time); watch.Restart(); result = testCollection.OrganizationSDictionary.ContainsKey(insComp.BaseOrganization); watch.Stop(); time = watch.Elapsed; ShowTime("SortedDictionary<Organization, InsuranceCompany>, метод ContainsKey", result, time); watch.Restart(); result = testCollection.StringSDictionary.ContainsKey(key); watch.Stop(); time = watch.Elapsed; ShowTime("SortedDictionary<string, InsuranceCompany>, метод ContainsKey", result, time); watch.Restart(); result = testCollection.OrganizationSDictionary.ContainsValue(insComp); watch.Stop(); time = watch.Elapsed; ShowTime("SortedDictionary<Organization, InsuranceCompany>, метод ContainsValue", result, time); break; case 5: // Сравнение скорости поиска последнего элемента key = testCollection.StringQueue.Peek(); insComp = (InsuranceCompany)testCollection.StringSDictionary[key].Clone(); Console.WriteLine("=== Сравнение скорости поиска последнего элемента ==="); watch.Start(); result = testCollection.OrganizationQueue.Contains(insComp); watch.Stop(); time = watch.Elapsed; ShowTime("Queue<Organization>, метод Contains", result, time); watch.Restart(); result = testCollection.StringQueue.Contains(key); watch.Stop(); time = watch.Elapsed; ShowTime("Queue<string>, метод Contains", result, time); watch.Restart(); result = testCollection.OrganizationSDictionary.ContainsKey(insComp.BaseOrganization); watch.Stop(); time = watch.Elapsed; ShowTime("SortedDictionary<Organization, InsuranceCompany>, метод ContainsKey", result, time); watch.Restart(); result = testCollection.StringSDictionary.ContainsKey(key); watch.Stop(); time = watch.Elapsed; ShowTime("SortedDictionary<string, InsuranceCompany>, метод ContainsKey", result, time); watch.Restart(); result = testCollection.OrganizationSDictionary.ContainsValue(insComp); watch.Stop(); time = watch.Elapsed; ShowTime("SortedDictionary<Organization, InsuranceCompany>, метод ContainsValue", result, time); break; case 6: // Сравнение скорости поиска центрального элемента key = testCollection.CollectionStringMiddle; insComp = (InsuranceCompany)testCollection.CollectionMiddle.Value.Clone(); Console.WriteLine("=== Сравнение скорости поиска центрального элемента ==="); watch.Start(); result = testCollection.OrganizationQueue.Contains(insComp); watch.Stop(); time = watch.Elapsed; ShowTime("Queue<Organization>, метод Contains", result, time); watch.Restart(); result = testCollection.StringQueue.Contains(key); watch.Stop(); time = watch.Elapsed; ShowTime("Queue<string>, метод Contains", result, time); watch.Restart(); result = testCollection.OrganizationSDictionary.ContainsKey(insComp.BaseOrganization); watch.Stop(); time = watch.Elapsed; ShowTime("SortedDictionary<Organization, InsuranceCompany>, метод ContainsKey", result, time); watch.Restart(); result = testCollection.StringSDictionary.ContainsKey(key); watch.Stop(); time = watch.Elapsed; ShowTime("SortedDictionary<string, InsuranceCompany>, метод ContainsKey", result, time); watch.Restart(); result = testCollection.OrganizationSDictionary.ContainsValue(insComp); watch.Stop(); time = watch.Elapsed; ShowTime("SortedDictionary<Organization, InsuranceCompany>, метод ContainsValue", result, time); break; case 7: // Сравнение скорости поиска несуществующего элемента insComp = new InsuranceCompany("Не существует", "Нет города", 0, 0, "Нет региона"); key = "Не существует"; Console.WriteLine("=== Сравнение скорости поиска несуществующего элемента ==="); watch.Start(); result = testCollection.OrganizationQueue.Contains(insComp); watch.Stop(); time = watch.Elapsed; ShowTime("Queue<Organization>, метод Contains", result, time); watch.Restart(); result = testCollection.StringQueue.Contains(key); watch.Stop(); time = watch.Elapsed; ShowTime("Queue<string>, метод Contains", result, time); watch.Restart(); result = testCollection.OrganizationSDictionary.ContainsKey(insComp.BaseOrganization); watch.Stop(); time = watch.Elapsed; ShowTime("SortedDictionary<Organization, InsuranceCompany>, метод ContainsKey", result, time); watch.Restart(); result = testCollection.StringSDictionary.ContainsKey(key); watch.Stop(); time = watch.Elapsed; ShowTime("SortedDictionary<string, InsuranceCompany>, метод ContainsKey", result, time); watch.Restart(); result = testCollection.OrganizationSDictionary.ContainsValue(insComp); watch.Stop(); time = watch.Elapsed; ShowTime("SortedDictionary<Organization, InsuranceCompany>, метод ContainsValue", result, time); break; } } while (userChoice != 0); }