static float InshFondSum(List <Organization> sortlist) { float sum = 0; foreach (Organization x in sortlist) { if (x is InsuranceComp) { InsuranceComp temp = (InsuranceComp)x; sum += temp.InshFond; } } return(sum); }
static float InshFondSum(SortedList sortlist) { float sum = 0; foreach (DictionaryEntry x in sortlist) { if (x.Value is InsuranceComp) { InsuranceComp temp = (InsuranceComp)x.Value; sum += temp.InshFond; } } return(sum); }
static void Main(string[] args) { #region vars Organization org1 = new Organization("A", 1950); Organization org2 = new Organization("B", 1960); Organization org3 = new Organization("C", 1920); Library lib1 = new Library("D", 1970, 100); Library lib2 = new Library("E", 1800, 150); Library lib3 = new Library("F", 1860, 55); Plant plant1 = new Plant("G", 1920, 70); Plant plant2 = new Plant("H", 1900, 30); InsuranceComp incomp3 = new InsuranceComp("I", 1930, 150); ShipComp sp2 = new ShipComp("J", 1850, 400); ShipComp sp3 = new ShipComp("K", 1910, 300); Organization[] mass1 = { org1, lib1, plant1 }; Organization[] mass2 = { org2, lib2, plant2, sp2 }; Organization[] mass3 = { org3, lib3, incomp3, sp3 }; Dist dist1 = new Dist("Area-A", mass1); Dist dist2 = new Dist("Area-B", mass2); Dist dist3 = new Dist("Area-C", mass3); List <Dist> city = new List <Dist>(); city.Add(dist1); city.Add(dist2); city.Add(dist3); #endregion Console.WriteLine("Наименование всех организаций заданного района города"); OrgsNames(city); OrgsNamesExp(city); Console.WriteLine("Количество организаций в городе"); NumLibs(city); NumLibsExp(city); Console.WriteLine("Суммарное количество инженеров на всех заводах города"); EngAmount(city); EngAmountExp(city); Console.WriteLine("Наименования организаций в районах A и B города"); ABOrgs(city); ABOrgsExp(city); Console.WriteLine("Вывод организаций района по году основания"); FoundedOrgs(city); FoundedOrgsExp(city); }
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(); }