Пример #1
0
        public void timeSearchInDictStringsByValue()
        {
            var first   = stringDictionary.ElementAt(0).Value;
            var center  = stringDictionary.ElementAt(stringDictionary.Count / 2).Value;
            var last    = stringDictionary.ElementAt(stringDictionary.Count - 1).Value;
            var another = new ResearchTeam("unused", "unused", 1, TimeFrame.LONG);

            Console.WriteLine("In Dictionary<string, ResearchTeam> by value:\n\tFor the first element: " + searchTimeForDictionaryByValue <string>(stringDictionary, first));
            Console.WriteLine("\tFor the central element:  " + searchTimeForDictionaryByValue <string>(stringDictionary, center));
            Console.WriteLine("\tFor the last element:  " + searchTimeForDictionaryByValue <string>(stringDictionary, last));
            Console.WriteLine("\tFor a non-existent element:  " + searchTimeForDictionaryByValue <string>(stringDictionary, another) + "\n");
        }
Пример #2
0
 public void AddDefaults()
 {
     for (int i = 0; i < 5; i++)
     {
         ResearchTeam researchTeam = new ResearchTeam($"Topic{i}", $"Name{i}", 1 + i * 5, TimeFrame.TWO_YEARS);
         for (int j = 0; j < 5; j++)
         {
             Person person = new Person($"Person{j}", $"Personov{j}", new DateTime(1980 + i + j, 1, 1, 1, 1, 1));
             Paper  paper  = new Paper($"Paper{j}", person, new DateTime(2000 + i + j, 1, 1, 1, 1, 1));
             researchTeam.AddPapers(paper);
             researchTeam.AddPersons(person);
         }
         _researchTeamList.Add(researchTeam);
     }
 }
Пример #3
0
        static void Main(string[] args)
        {
            Console.WriteLine("1. Cтворити об'єкт типу ResearchTeamCollection. Додати в колекцію декілька елементрів тику ResearchTeam з різними значеннями та вивести створений об'єкт.\n");
            ResearchTeamCollection researchTeamCollection = new ResearchTeamCollection();

            researchTeamCollection.AddDefaults();

            ResearchTeam[] teams = new ResearchTeam[3];
            teams[0] = new ResearchTeam("topic43", "name563", 123456, TimeFrame.TWO_YEARS);
            teams[1] = new ResearchTeam("topic463", "name45", 654123, TimeFrame.YEAR);
            teams[2] = new ResearchTeam("topic", "name", 6563, TimeFrame.LONG);

            Paper[] papers = new Paper[3];
            papers[0] = new Paper();
            papers[1] = new Paper("title1", new Person("Person", "Person", new DateTime(1986, 12, 12)), new DateTime(2020, 10, 10));
            papers[2] = new Paper("title2", new Person("Person0", "Person0", new DateTime(1987, 12, 12)), new DateTime(2020, 11, 25));

            teams[1].AddPapers(papers);


            researchTeamCollection.AddResearchTeams(teams);

            Console.WriteLine(researchTeamCollection.ToString());
            Console.WriteLine("\n\n\n\n\n");
            Console.WriteLine("2. Для створеного об'єкту ResearchTeamCollection викликати методи, що сортують список List<ResearchTeam> за різними критеріями та після кожного сортування вивести дані об'єкту.\n");
            Console.WriteLine(" Сортування за номером реєстрації.\n");
            researchTeamCollection.SortByTeamNumber();
            Console.WriteLine(researchTeamCollection.ToString() + "\n\n");

            Console.WriteLine(" Сортування за назвою та теми дослідження.\n");
            researchTeamCollection.SortByTopic();
            Console.WriteLine(researchTeamCollection.ToString() + "\n\n");

            Console.WriteLine(" Сортування за кількістю публікацій.\n");
            researchTeamCollection.SortByCountPapers();
            Console.WriteLine(researchTeamCollection.ToShortList() + "\n\n");

            Console.WriteLine("\n\n\n\n\n");
            Console.WriteLine("3. Викликати методи класу ResearchTeamCollection, що виконують операції зі списком List<ResearchTeam> та після кожної операції вивести результат.\n");
            Console.WriteLine(" Знаходження мінімального значення номера реєстрації для елементів списку, вивести мінімальне значення.\n");
            Console.WriteLine(researchTeamCollection.MinNumber + "\n\n");

            Console.WriteLine(" Фільтрацію проектів з тривалістю дослідження TwoYears, вивести результат фільтрації.\n");
            List <ResearchTeam> res1 = new List <ResearchTeam>();

            res1 = researchTeamCollection.ResearchTeamsGroup.ToList <ResearchTeam>();
            foreach (ResearchTeam team in res1)
            {
                Console.WriteLine(team.ToString());
            }


            Console.WriteLine(" Вивести проекти з заданою к-стю учасників(5).\n");
            List <ResearchTeam> res2 = new List <ResearchTeam>();

            res2 = researchTeamCollection.NGroup(5);
            foreach (ResearchTeam team in res2)
            {
                Console.WriteLine(team.ToString());
            }


            Console.WriteLine("3. Створити об'єкт типу  TestCollection. Викликати метод для пошуку в колекціях першого, центрального, останнього та елемнта, що не входить а колекцію. Вивести час пошуку для всіх чотирьох випадків.\n");
            TestColections test = new TestColections(100);

            test.timeSearchInListStrings();
            test.timeSearchInListKeys();
            test.timeSearchInDictStringsByValue();
            test.timeSearchInDictStrings();
            test.timeSearchInDictKeysByValue();
            test.timeSearchInDictKeys();

            Console.Read();
        }
Пример #4
0
        private long searchTimeForDictionaryByValue <T>(Dictionary <T, ResearchTeam> dictionary, ResearchTeam item)
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            dictionary.ContainsValue(item);
            sw.Stop();

            return(sw.ElapsedTicks);
        }