private void AddInCollections(StudentFromAbstract student) { listStudents.Add(student); listString.Add(student.ToString()); dictPerson.Add(student.BasePerson, student); dictString.Add(student.ToString(), student); }
public void DeleteElem() { if (listString.Count == 0) { Console.WriteLine("Коллекции пусты!"); return; } GetStudentInfo(out string name, out int age, out string gender, out int course, out double avgGrades); var student = new StudentFromAbstract(name, age, gender, course, avgGrades); if (!listString.Contains(student.ToString())) { Console.WriteLine("Элемент не найден!"); return; } else { student = dictString[student.ToString()]; } listStudents.Remove(student); listString.Remove(student.ToString()); dictPerson.Remove(student.BasePerson); dictString.Remove(student.ToString()); }
public TestCollections() { int size = 1000; Random r = new Random(DateTime.Now.Millisecond); for (int i = 0; i < size; i++) { var student = new StudentFromAbstract(GenerateName(), r.Next(10, 100), GenerateGender(), r.Next(1, 7), r.NextDouble() * 5); AddInCollections(student); } }
public void FindElems() { var firstElem = dictPerson[dictPerson.Keys.ToArray()[0]]; var middleElem = listStudents[500]; var lastElem = listStudents[999]; var newElem = new StudentFromAbstract("George", 10, "male", 1, 2); FindItem(firstElem, "Поиск первого элемента: "); FindItem(middleElem, "Поиск среднего элемента: "); FindItem(lastElem, "Поиск последнего элемента: "); FindItem(newElem, "Поиск не входящего в коллекцию элемента: "); }
private void FindItem(StudentFromAbstract student, string message) { var watch = new Stopwatch(); var foundItem = new StudentFromAbstract(); Console.WriteLine(message + student.ToString()); Console.WriteLine("Поиск в первой коллекции (List<StudentFromAbstract>):"); watch.Start(); if (listStudents.Contains(student)) { foundItem = new StudentFromAbstract(student.Name, student.Age, student.Gender, student.Course, student.AverageGrades); watch.Stop(); Console.WriteLine("Элемент найден!"); } else { watch.Stop(); Console.WriteLine("Элемент не найден!"); } Console.WriteLine("Время поиска:" + watch.ElapsedTicks); Console.WriteLine(); watch.Reset(); Console.WriteLine("Поиск во второй коллекции (List<string>):"); watch.Start(); if (listString.Contains(student.ToString())) { foundItem = new StudentFromAbstract(student.Name, student.Age, student.Gender, student.Course, student.AverageGrades); watch.Stop(); Console.WriteLine("Элемент найден!"); } else { watch.Stop(); Console.WriteLine("Элемент не найден!"); } Console.WriteLine("Время поиска:" + watch.ElapsedTicks); Console.WriteLine(); watch.Reset(); Console.WriteLine("Поиск в третьей коллекции (по ключу) (Dictionary<PersonAbstract, StudentFromAbstract>):"); watch.Start(); if (dictPerson.ContainsKey(student.BasePerson)) { foundItem = new StudentFromAbstract(student.Name, student.Age, student.Gender, student.Course, student.AverageGrades); watch.Stop(); Console.WriteLine("Элемент найден!"); } else { watch.Stop(); Console.WriteLine("Элемент не найден!"); } Console.WriteLine("Время поиска:" + watch.ElapsedTicks); Console.WriteLine(); watch.Reset(); Console.WriteLine("Поиск в третьей коллекции (по значению) (Dictionary<PersonAbstract, StudentFromAbstract>):"); watch.Start(); if (dictPerson.ContainsValue(student)) { foundItem = new StudentFromAbstract(student.Name, student.Age, student.Gender, student.Course, student.AverageGrades); watch.Stop(); Console.WriteLine("Элемент найден!"); } else { watch.Stop(); Console.WriteLine("Элемент не найден!"); } Console.WriteLine("Время поиска:" + watch.ElapsedTicks); Console.WriteLine(); watch.Reset(); Console.WriteLine("Поиск в четвертой коллекции (Dictionary<string, StudentFromAbstract>):"); watch.Start(); if (dictString.ContainsKey(student.ToString())) { foundItem = new StudentFromAbstract(student.Name, student.Age, student.Gender, student.Course, student.AverageGrades); watch.Stop(); Console.WriteLine("Элемент найден!"); } else { watch.Stop(); Console.WriteLine("Элемент не найден!"); } Console.WriteLine("Время поиска:" + watch.ElapsedTicks); Console.WriteLine(); watch.Reset(); }