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"); }
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); } }
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(); }
private long searchTimeForDictionaryByValue <T>(Dictionary <T, ResearchTeam> dictionary, ResearchTeam item) { Stopwatch sw = new Stopwatch(); sw.Start(); dictionary.ContainsValue(item); sw.Stop(); return(sw.ElapsedTicks); }