# Поиск, сортировка ("Университет") ## Поиск ``` ``` ``` using System; using System.Collections.Generic; using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Input; namespace University { public partial class MainWindow : Window { private List students; private string searchFilter = ""; private bool sortAsc = true; public MainWindow() { InitializeComponent(); // Инициализируем список студентов InitializeData(); // Отображаем всех студентов в listview UpdateStudentList(students); } private void SearchFilter_KeyUp(object sender, KeyEventArgs e) { searchFilter = SearchFilterTextBox.Text; Invalidate(); } private void Invalidate() { throw new NotImplementedException(); } private void InitializeData() { // Создаем список студентов students = new List { new Student { Name = "Джейк Ли", Course = 1, Nationality = "Китаец", Age = 19 }, new Student { Name = "Ариадна Санчес", Course = 2, Nationality = "Испанец", Age = 20 }, new Student { Name = "Эдвард Каллен", Course = 1, Nationality = "Американец", Age = 20 }, new Student { Name = "Эндрю Уилсон", Course = 3, Nationality = "Американец", Age = 21 }, new Student { Name = "Хэй Вэнь", Course = 3, Nationality = "Китаец", Age = 22 }, new Student { Name = "Семен Хомяк", Course = 4, Nationality = "Русский", Age = 23 }, }; } private void FilterComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { List filteredStudents = new List(); // Фильтруем список студентов по выбранному критерию UpdateStudentList(filteredStudents); } private void UpdateStudentList(List studentsToDisplay) { StudentListView.ItemsSource = studentsToDisplay; } private void RadioButton_Checked(object sender, RoutedEventArgs e) { sortAsc = (sender as RadioButton).Tag.ToString() == "1"; InvalidateVisual(); // Исправлено имя метода } private void SortByAgeButton_Click(object sender, RoutedEventArgs e) { // Сортируем список студентов по возрасту List sortedStudents = students.OrderBy(student => student.Age).ToList(); // Если нужно отсортировать по убыванию, разворачиваем список if (!sortAsc) { sortedStudents.Reverse(); } // Обновляем список студентов в ListView UpdateStudentList(sortedStudents); } private IEnumerable FilteredStudentList { get { // сохраняем во временную переменную полный список var res = students; return res; } } } class Student { public string Name { get; set; } public int Course { get; set; } public string Nationality { get; set; } public int Age { get; set; } } } ``` ![](./img/Снимок%20экрана%202024-04-29%20083601.png)